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

golang中两个接口如何匹配

golang中两个接口如何匹配

Go
梵蒂冈之花 2022-01-17 18:20:49
如果我有一个类型map[interface{}]interface{}并且我有另一个具有 map[string]interface{} 的地图,如何比较 interface{} 值。如果我有一个 m := make(map[string]interface{})并且我执行,我将如何评估哈希值,m[m["key"]]即我正在为一个以字符串为键的映射传递一个 interface{} 值。反之亦然,即: m1 := make(map[interface{}]interface{})我执行m1[m["key"]]
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

Go 接口是一个 2 字的值,因此可以进行比较。从比较运算符的语言规范部分:

  • 接口值具有可比性。如果两个接口值具有相同的动态类型和相同的动态值,或者两者都具有值 nil,则它们是相等的。

  • 当类型 X 的值可比较且 X 实现 T 时,非接口类型 X 的值 x 和接口类型 T 的值 t 是可比较的。如果 t 的动态类型与 X 相同且 t 的动态值等于 x,则它们相等.

在 的情况下只有第一点是相关的map[interface{}]T,因为键总是被转换为interface{}用于比较的。


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

添加回答

举报

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