Sobes.tech
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.