我試圖實現玩具搜索算法,並需要維護一組探索狀態。狀態是一個結構:包含切片的結構集
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