具有任何键类型和任何值类型的 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。

值类型可以是任意或(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