我试图实现一个玩具搜索算法,需要维护一组已探索的状态。一个状态是一个结构体:
type VWState struct {
botLocation VWCoords
dirtLocations []VWCoords
}
我的第一个想法是使用map[VWState]bool
来实现一个简单的Set,但我似乎无法找到一种使其工作的方法。如果我尝试将VWState
用作映射的键,我会得到以下恐慌:
Panic: runtime error: hash of unhashable type vw.VWState (PC=0x40EB0D)
有没有办法使这个工作?我能否为该结构实现自定义哈希函数,还是应该寻找其他实现方式?非常感谢任何帮助。
hashCode()
或Python的__hash __()
之类的东西,还是应该使用一个map [int] bool
并在插入之前手动提取哈希值呢? - vlthrString()
的示例。在Go中没有这样的魔法,您必须创建自己的哈希方法以输出唯一的int。但是,如果您使用完整的字符串表示,可以依靠映射实现的哈希来确保不会发生冲突。 - JimB