Sobes.tech
Junior — Middle

Czy można wyciągnąć wartość z mapy, która jeszcze nie została zainicjalizowana?

sobes.tech AI

Odpowiedź od AI

W Go, jeśli mapa (mapa) nie została zainicjalizowana (czyli jest równa nil), próba pobrania z niej wartości po kluczu nie spowoduje paniki, a jedynie zwróci wartość domyślną dla typu wartości i flagę boolowską false, wskazującą, że klucz nie istnieje.

Przykład:

var m map[string]int // m == nil

value, ok := m["key"]
fmt.Println(value, ok) // Wyświetli: 0 false

Jednak, jeśli spróbujesz zapisać wartość do niezainicjalizowanej mapy, wystąpi panic:

m["key"] = 10 // panic: assignment to entry in nil map

Dlatego, aby bezpiecznie korzystać z mapy, należy ją zainicjalizować, na przykład za pomocą make:

m = make(map[string]int)
m["key"] = 10 // teraz działa poprawnie