今天,我將“go vet”納入了構(gòu)建 Go 服務(wù)的管道之一。我想知道為什么go vet我本地機(jī)器上的輸出與 CI 服務(wù)器上運(yùn)行的輸出不同。我發(fā)現(xiàn) go 版本有所不同 - 至少有一點(diǎn)不同。我的本地 Go 版本是 1.12.4,CI 版本是 1.12.7。這個(gè)事實(shí)可以解釋不同的行為,但我不明白為什么會發(fā)生這種情況!有氣味:type Something struct { ... BatteryNumber string `json:"number"` ...}type SomethingWithBattery struct { Something Number string `json:"number"` ...}因此,在結(jié)構(gòu)標(biāo)簽中使用兩次“數(shù)字”,因?yàn)?Something-struct 嵌套 SomethingWithBattery - 1.12.4 抱怨,1.12.7 則不然。為什么?
1 回答

肥皂起泡泡
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
Go 1 和 Go 程序的未來
工具
最后,Go 工具鏈(編譯器、鏈接器、構(gòu)建工具等)正在積極開發(fā)中,可能會改變行為。例如,這意味著依賴于工具的位置和屬性的腳本可能會被單點(diǎn)版本破壞。
go vet
正在積極開發(fā)中,最近已被重寫。工具沒有兼容性保證,只有語言。
cmd/vet:考慮恢復(fù)嵌入字段的標(biāo)簽沖突#30465
go vet 由于有意使用 json 標(biāo)簽隱藏嵌入字段而失敗。
此外,Go 工具還修復(fù)了錯(cuò)誤。例如,問題 30465。
- 1 回答
- 0 關(guān)注
- 130 瀏覽
添加回答
舉報(bào)
0/150
提交
取消