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