具有任意键类型和任意值类型的Golang映射



我可以在golang中创建一个具有任何键类型和任何值类型的映射吗,类似于:

dict1 := map[interface]interface{}

非常感谢!

根据密钥类型的语言规范:

比较运算符==和!=必须为操作数完全定义钥匙类型;

所以大多数类型都可以用作密钥类型,但是:

切片、映射和函数值不具有可比性

,因此不能用作映射键。

值类型可以是任意类型或(anyinterface{}(类型。

type mytype struct{}
type ss []string
_ = make(map[interface{}]interface{}) // this works...
_ = make(map[any]any)                 // ... semantically the same
_ = make(map[mytype]any)              // even a struct
_ = make(map[ss]any) // FAILS: invalid map key type ss

https://go.dev/play/p/OX_utGp8nfH

相关内容

  • 没有找到相关文章

最新更新