当尝试在Go 1.18工具链中使用any而不是interface{}时,您可能会得到错误:
any
interface{}
undeclared name: any (requires version go1.18 or later)
为什么会这样,你怎么解决呢?any在Go 1.18中引入。
mm5n2pyu1#
如果你的go.mod文件中列出的go版本低于1.18,你会得到这个错误,比如:
go
module example.com/foo go 1.17
将go.mod改为go 1.18应该可以解决这个错误。一般来说,每个模块的go.mod文件控制编译该模块时使用的Go语言版本,这允许每个模块作者以自己的速度选择更渐进地采用新的语言更改。这在Go语言更改设计文档中有更详细的描述。操场上这个错误的例子,包括一个你可以编辑的go.mod文件:https://go.dev/play/p/au6TtTvNsRy
go 1.18
1条答案
按热度按时间mm5n2pyu1#
如果你的go.mod文件中列出的
go
版本低于1.18,你会得到这个错误,比如:将go.mod改为
go 1.18
应该可以解决这个错误。一般来说,每个模块的go.mod文件控制编译该模块时使用的Go语言版本,这允许每个模块作者以自己的速度选择更渐进地采用新的语言更改。这在Go语言更改设计文档中有更详细的描述。
操场上这个错误的例子,包括一个你可以编辑的go.mod文件:https://go.dev/play/p/au6TtTvNsRy