Junior — Middle
Jak uzyskać dostęp do wartości w słowniku, który nie został jeszcze wcześniej utworzony?
sobes.tech AI
Odpowiedź od AI
W języku Go, jeśli słownik (mapa) nie został jeszcze utworzony (czyli jest równy nil), próba dostępu do elementów po kluczu nie spowoduje paniki, a jedynie zwróci wartość zerową typu elementów.
Na przykład:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Wyświetli 0, nie spowoduje błędu
Jednak próba przypisania wartości do nil mapy spowoduje panikę:
m["key"] = 10 // panic: przypisanie do wpisu w nil mapie
Dlatego przed zapisaniem do mapy należy upewnić się, że jest zainicjalizowana, na przykład:
m = make(map[string]int)
m["key"] = 10
W ten sposób, podczas odczytu można odwołać się do nil mapy bez błędów, ale podczas zapisu konieczne jest wcześniejsze utworzenie mapy.