【发布时间】:2015-06-22 02:37:03
【问题描述】:
假设我在 Go 中有一个结构类型,我想将其用作映射中的键,但我不想使用 Go 的内置相等操作。构建此类地图的最佳方法是什么?
举个具体的例子,这是我的键类型和相等操作:
type Key struct {
a *int
}
func Equal(x Key, y Key) bool {
return *x.a == *y.a
}
如何构建使用Equal 进行键比较的地图?
【问题讨论】:
-
但是我如何声明该地图应该使用该方法?更糟糕的是,在我的真实代码中,字段 a 是 int 的一个 slice,据我所知,silces 没有内置的相等操作。
-
是的,在常见问题解答golang.org/doc/faq 中有一个问题是“为什么地图不允许切片作为键”,答案是没有内置的相等运算符。我在回答中提出了我认为最合理的解决方案。
标签: go