Я новичок в golang, и я пытаюсь создать карту типа map [string] interface {}.golang map of interface - panic: присвоение записи в nil map
Но когда я пытаюсь создать новый ключ, когда он не существует, я получаю ошибку времени выполнения «panic: assign to entry in nil map». Может ли кто-нибудь сказать мне, что я делаю неправильно, пожалуйста?
Go PlayGround: https://play.golang.org/p/vIEE0T11yl
Вот мой код:
package main
func main() {
buffer := Buffer{}
buffer.AddRecord("myKey", 12345)
}
type Buffer struct {
records map[string][]interface{}
}
// ProcessRecord adds a message to the buffer.
func (buffer *Buffer) AddRecord(key string, record interface{}) {
_, ok := buffer.records[key]
if !ok {
buffer.records[key] = make([]interface{}, 0)
}
buffer.records[key] = append(buffer.records[key], record)
}
Я не знал, не было ли у меня инициализации, когда я задал этот вопрос, поэтому я не знаю, является ли это технически дублированием. В противном случае я знал, как инициализировать карту внутри структуры или в этом случае карту среза интерфейса. – bn00d