为什么我会得到“未声明的名称:any(requires version go1.18 or later)”时使用any而不是interface{}?我正在使用Go 1.18

h6my8fg2  于 2023-05-04  发布在  Go
关注(0)|答案(1)|浏览(368)

当尝试在Go 1.18工具链中使用any而不是interface{}时,您可能会得到错误:

undeclared name: any (requires version go1.18 or later)

为什么会这样,你怎么解决呢?any在Go 1.18中引入。

mm5n2pyu

mm5n2pyu1#

如果你的go.mod文件中列出的go版本低于1.18,你会得到这个错误,比如:

module example.com/foo

go 1.17

将go.mod改为go 1.18应该可以解决这个错误。
一般来说,每个模块的go.mod文件控制编译该模块时使用的Go语言版本,这允许每个模块作者以自己的速度选择更渐进地采用新的语言更改。这在Go语言更改设计文档中有更详细的描述。
操场上这个错误的例子,包括一个你可以编辑的go.mod文件:https://go.dev/play/p/au6TtTvNsRy

相关问题