我可以在golang中创建一个具有任何键类型和任何值类型的映射吗,类似于:
dict1 := map[interface]interface{}
非常感谢!
根据密钥类型的语言规范:
比较运算符==和!=必须为操作数完全定义钥匙类型;
所以大多数类型都可以用作密钥类型,但是:
切片、映射和函数值不具有可比性
,因此不能用作映射键。
值类型可以是任意类型或(any
或interface{}
(类型。
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