go fmt 雖然是官方文件直接告訴你的修正格式工具,但go fmt並不會幫你自動修正 import
例如
package main
import "fmt"
func main(){}
這段 code ,如果執行 go fmt,他不會自動幫你刪除
import "fmt"
但 golang playground 和 vs code 的 go 插件都能做到……
go fmt 雖然是官方文件直接告訴你的修正格式工具,但go fmt並不會幫你自動修正 import
例如
package main
import "fmt"
func main(){}
這段 code ,如果執行 go fmt,他不會自動幫你刪除
import "fmt"
但 golang playground 和 vs code 的 go 插件都能做到……
有時候,為了測試,需要 select 一組範例資料,例如我需要一組有 id、account 的使用者假資料
| id | account |
|---|---|
| 10 | lorem_ipsum |
| 11 | morbi_vitae |
| 12 | mauris |
| 13 | morbi_fermentum |
| 14 | curabitur |
我會這樣處理:
SELECT 10 AS id, 'lorem_ipsum' AS name
UNION ALL
SELECT 11, 'morbi_vitae'
UNION ALL
SELECT 12, 'mauris'
UNION ALL
SELECT 13, 'morbi_fermentum'
UNION ALL
SELECT 14, 'curabitur'
先說一下,我的 Oracle DB 與 SQL 引擎版本如下
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
這是我最近遇到的狀況。
我的 SQL 如下
SELECT FOO01 AS name,
FOO02 AS foo_value
FROM FOO_TABLE
結果就出現錯誤了
這是我的 SQL
WITH T AS (
SELECT 1 AS id
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL
SELECT 4
),
S AS (
SELECT 10 AS id
UNION ALL
SELECT 11
UNION ALL
SELECT 12
UNION ALL
SELECT 4
)
SELECT * FROM S
WHERE id NOT IN (SELECT id FROM T)
這段 SQL 執行完畢後,會得到
| id |
|---|
| 10 |
| 11 |
| 12 |
但是,如果今天 T 加上一筆 null 資料,即:
| id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| (null) |
假設我的 table 如下
| id | foo_date | …… |
|---|---|---|
| 123 | 2020-01-05 | …… |
| 124 | 2020-02-16 | …… |
| 125 | 2020-11-21 | …… |
如果我要更新 foo_date,將月份改成 6 月,則可以
記錄自己常用的 git 小技巧。
假設我 git 紀錄如下
* 5a5a7de6e1dd21123ef8348e81fb60e0651629f9 (HEAD -> master) Merge branch 'feature/foo'
|\
| * 1183a01ad3f246801b978cad341958ae61c014db (feature/foo) add file
* | eed52969748a01082308d922c5500281a3d24abb ...
* | 1b4089b3fc6fd79cebeb7569e56156c65e68e309 Merge branch 'feature/bar'
|\ \
| |/
|/|
| * 6ed0449194220f2bd1d0e73881075f74ddf921a0 (feature/bar) .
|/
| * 5c65ffa567b1e52f61df6dbbef797c074884e70e (feature/example) add file
|/
* 2e6b164aa6a8042bfa4b11cf4c4ab4fefb7fc66c Init
要知道「那些 branch 有指定 branch / commit」的話,使用git branch --contains
git branch --contains feature/bar
feature/bar
* master
git branch --contains feature/foo
feature/foo
* master
從中可知,feature/bar、feature/foo都已經合併至 master
如果要知道,「有哪些 branch 合併至指定 branch」,則
git branch --merged master
feature/bar
feature/foo
* master
git branch --merged eed52969748a01082308d922c5500281a3d24abb
feature/bar
eed52969748a01082308d922c5500281a3d24abb 雖然是 master 的 commit,但因為現在 master 的版本更新,所以沒有把 master 列入
最近嘗試一下 go1.25 新增的 json v2。不過沒想到一下子就卡關了
我程式如下
package main
import (
json "encoding/json/v2"
"log"
)
func main() {
out, err := json.Marshal(
struct {
N string
ID string
}{N: "John"},
)
if err != nil {
log.Fatal(err)
}
log.Printf("%s", out)
}
然而,執行 go run {這個 go 檔案}時,卻出現以下錯誤
imports encoding/json/v2: build constraints exclude all Go files in %USERPROFILE%\AppData\Local\go\src\encoding\json\v2
這主要原因是因為 json v2 是個實驗性 package,不在 golang v1 的相容性保證中。
所以需要特殊處理。