为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
www说 2022-11-28 14:48:10
我可以在 golang 中创建具有任何键类型和任何值类型的映射吗?, 就像是 :dict1 := map[interface]interface{}非常感谢 !
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

从键类型的语言规范:

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

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

切片、映射和函数值不可比较

因此不能用作映射键。

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


查看完整回答
反对 回复 2022-11-28
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信