在阅读了有关在地图中使用切片的相关问题后,我对 Go 中的平等感到好奇。我知道可以覆盖equalsJava的方法Object。是否有类似的方法来定义 Go 如何检查用户定义的类型/结构是否相等?如果是这样,上面提到的问题将有一个解决方法。我认为使用interface{}值可能会提供解决方案,但我收到了错误消息panic: runtime error: hash of unhashable type []int。
3 回答

慕桂英546537
TA贡献1848条经验 获得超10个赞
Go 语言本身还没有标准(go 1.13)。
但是,比较实用程序可以提供自己的方式来支持它。
函数cmp.Equal
(来自google/go-cmp/cmp)通过定义 Equal 方法支持自定义类型比较器的定义:
• 如果值具有形式为的 Equal 方法
"(T) Equal(T) bool"
或"(T) Equal(I) bool"
whereT
可分配给I
,则使用x.Equal(y)
even ifx
或y
为 nil 的结果。否则,不存在这样的方法,评估继续下一个规则。
- 3 回答
- 0 关注
- 259 浏览
添加回答
举报
0/150
提交
取消