具有任何键类型和任何值类型的 Golang 映射
Golang map with any key type and any value type
我可以在 golang 中创建具有任何键类型和任何值类型的映射吗? , 类似 :
dict1 := map[interface]interface{}
非常感谢!
来自 language spec 的键类型:
The comparison operators == and != must be fully defined for operands
of the key type;
因此大多数类型都可以用作键类型,但是:
Slice, map, and function values are not comparable
因此不能用作 map-key。
值类型可以是任意或(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
我可以在 golang 中创建具有任何键类型和任何值类型的映射吗? , 类似 :
dict1 := map[interface]interface{}
非常感谢!
来自 language spec 的键类型:
The comparison operators == and != must be fully defined for operands of the key type;
因此大多数类型都可以用作键类型,但是:
Slice, map, and function values are not comparable
因此不能用作 map-key。
值类型可以是任意或(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