我试图实现玩具搜索算法,并需要维护一组探索状态。状态是一个结构:包含切片的结构集
type VWState struct {
botLocation VWCoords
dirtLocations []VWCoords
}
我首先想到的是,一组简单的可以用map[VWState]bool
实现,但我似乎无法想出一个办法,使工作。如果我尝试使用VWState
作为重点的地图,我得到如下的恐慌:
Panic: runtime error: hash of unhashable type vw.VWState (PC=0x40EB0D)
有没有一种方法,使这项工作?我可以为结构实现一个自定义哈希函数吗,还是我应该查看其他一些方法来实现?
任何帮助将不胜感激。
这个改变使得它可以编译,但是我认为这会使用指针本身的散列,因此不会检测到两个具有等同内容的不同结构实例吗? 如果是这样,有什么办法来实现这种行为? – vlthr 2014-10-20 22:08:59
是的,这是正确的。如果您希望等效结构具有相同的密钥,则需要提供某种方法来生成该密钥。 – JimB 2014-10-20 22:13:06
您是否知道该语言是否提供了实现该行为的任何工具,以便它能与内置地图一起工作?在Java的'hashCode()'或Python的'__hash __()'方面,或者我应该使用'map [int] bool'并在插入前手动提取哈希? – vlthr 2014-10-20 22:23:13