Junior — Middle
W jakich przypadkach dozwolone jest wykonanie operacji wstawiania do Mapy, która nie została jeszcze zainicjalizowana?
sobes.tech AI
Odpowiedź od AI
W Go nie można wykonać operacji wstawiania do mapy, jeśli nie została ona zainicjalizowana (czyli jest nil), ponieważ spowoduje to panikę podczas działania programu.
Inicjalizacja mapy odbywa się za pomocą funkcji make:
m := make(map[string]int)
ms["key"] = 42 // poprawnie
Jeśli mapa jest nil, próba zapisania spowoduje panic:
var m map[string]int
m["key"] = 42 // panic: przypisanie do elementu w nil mapie
Wyjątek:
- Jeśli
mapajest zadeklarowana, ale nie zainicjalizowana, można ją zainicjalizować bezpośrednio przed wstawieniem. - Czasami
mapajest inicjalizowana w konstruktorze lub funkcji i przekazywana dalej.
W związku z tym, wstawianie do nie zainicjalizowanej mapy jest dozwolone tylko po jej jawnej inicjalizacji przez make lub przypisaniu już istniejącej i zainicjalizowanej mapy. Bez tego operacja spowoduje błąd w czasie działania.