我已經(jīng)在文件中g(shù)o 1.15指定了。go.mod當(dāng)前的編譯器版本如下:? go version
go version go1.14.4 linux/amd64然而,go build仍然成功地構(gòu)建了一個(gè)二進(jìn)制文件。這是預(yù)期的行為嗎?不確定我可以在模塊描述中找到解釋。
如果 `go.mod` 中的版本低于實(shí)際版本,`go build` 是否會失?。?/h1>
1 回答
九州編程
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
是的,這是預(yù)期的行為。
go.mod 更像是一個(gè)依賴關(guān)系和包管理的工具,而不是一個(gè)管理構(gòu)建過程輸出的工具。這就是為什么,如果您不使用 1.15 中的任何功能,它仍然應(yīng)該能夠被構(gòu)建。
有趣的是,如果您嘗試將項(xiàng)目設(shè)置為比您正在使用的版本更高的版本(即使用 go tool 1.14 構(gòu)建的 1.15),并且您在您的項(xiàng)目中標(biāo)記go.mod它需要使用更高版本,它'將出現(xiàn)在構(gòu)建過程中:
# temp/test-go-build
./main.go:10:15: o.Redacted undefined (type url.URL has no field or method Redacted)
note: module requires Go 1.15
所以 go 工具會盡力滿足您的需求,但不會阻止您到達(dá)您想去的地方(明白了嗎?)。
- 1 回答
- 0 關(guān)注
- 262 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
