我已經(jīng)在文件中g(shù)o 1.15指定了。go.mod當(dāng)前的編譯器版本如下:? go version
go version go1.14.4 linux/amd64然而,go build仍然成功地構(gòu)建了一個二進制文件。這是預(yù)期的行為嗎?不確定我可以在模塊描述中找到解釋。
如果 `go.mod` 中的版本低于實際版本,`go build` 是否會失?。?/h1>
1 回答

九州編程
TA貢獻1785條經(jīng)驗 獲得超4個贊
是的,這是預(yù)期的行為。
go.mod 更像是一個依賴關(guān)系和包管理的工具,而不是一個管理構(gòu)建過程輸出的工具。這就是為什么,如果您不使用 1.15 中的任何功能,它仍然應(yīng)該能夠被構(gòu)建。
有趣的是,如果您嘗試將項目設(shè)置為比您正在使用的版本更高的版本(即使用 go tool 1.14 構(gòu)建的 1.15),并且您在您的項目中標(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 工具會盡力滿足您的需求,但不會阻止您到達您想去的地方(明白了嗎?)。
- 1 回答
- 0 關(guān)注
- 239 瀏覽
添加回答
舉報
0/150
提交
取消