Так что у меня-структуру, как это:Неожиданное значение при получении значения из карты
type Magni struct {
...
Handlers map[string]func(*Message)
...
}
И у меня есть функция, чтобы создать новый экземпляр структуры:
func New(nick, user, real string) *Magni {
return &Magni{
...
Handlers: make(map[string]func(*Message)),
...
}
}
Но я могу 'получить что-то с карты Handlers
с ключом "hey"
, когда "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
к be nil
.
Я делаю что-то неправильно или это ожидаемое поведение?
Фактически 'cmd [3]' это строка ': hey' so' cmd [3] [1:] 'is' hey'. –
@StianOK Тогда ваш 'cmd [3]' не является 'string'': "hey". См. Редактирование, чтобы проверить его. – icza