中獲得價值的時候所以我有這樣的結構:預期的值從地圖
type Magni struct {
...
Handlers map[string]func(*Message)
...
}
而且我有一個函數來創建結構的新實例:
func New(nick, user, real string) *Magni {
return &Magni{
...
Handlers: make(map[string]func(*Message)),
...
}
}
但我做不到當"hey"
位於一個變量中時,從Handlers
地圖中獲得"hey"
密鑰的地圖,它只有在我自己輸入時才起作用。這裏是結構Magni
和m
的方法的指針結構Magni
:
handler := m.Handlers[cmd[3][1:]] // cmd[3][1:] contains string "hey"
handler2 := m.Handlers["hey"]
出於某種原因,handler
值nil
和handler2
值是0x401310
,基本上我沒想到handler
到是nil
。
我做錯了什麼或者這是預期的行爲?
實際上'cmd [3]'是字符串':hey'所以'cmd [3] [1:]'是'hey'。 –
@StianOK然後你的'cmd [3]'不是'string'':嘿嘿''。請參閱編輯以驗證它。 – icza