为什么在使用 any 而不是 interface{} 时得到 "undeclared name: any (requires version go1.18 or later)"?我正在使用 Go 1.18
Why do I get "undeclared name: any (requires version go1.18 or later)" when using any instead of interface{}? I am using Go 1.18
在 Go 1.18 工具链中尝试使用 any
而不是 interface{}
时,您会收到错误消息:
undeclared name: any (requires version go1.18 or later)
这是为什么,如何解决? any
在 Go 1.18 中是 introduced。
如果您的 go.mod 文件列出低于 1.18 的 go
版本,您将收到此错误,例如:
module example.com/foo
go 1.17
将 go.mod 改为阅读 go 1.18
应该可以解决错误。
一般来说,每个模块的 go.mod 文件控制编译该模块时使用的 Go 语言的版本,这允许每个模块作者根据他们的选择加入更逐步地采用新的语言更改自己的节奏。这在 Go language changes 设计文档中有更详细的描述。
playground 上的此错误示例,包括您可以编辑的 go.mod 文件:https://go.dev/play/p/au6TtTvNsRy
在 Go 1.18 工具链中尝试使用 any
而不是 interface{}
时,您会收到错误消息:
undeclared name: any (requires version go1.18 or later)
这是为什么,如何解决? any
在 Go 1.18 中是 introduced。
如果您的 go.mod 文件列出低于 1.18 的 go
版本,您将收到此错误,例如:
module example.com/foo
go 1.17
将 go.mod 改为阅读 go 1.18
应该可以解决错误。
一般来说,每个模块的 go.mod 文件控制编译该模块时使用的 Go 语言的版本,这允许每个模块作者根据他们的选择加入更逐步地采用新的语言更改自己的节奏。这在 Go language changes 设计文档中有更详细的描述。
playground 上的此错误示例,包括您可以编辑的 go.mod 文件:https://go.dev/play/p/au6TtTvNsRy