Junior — Middle
Je možné získať hodnotu z mapy, ktorá ešte nebola inicializovaná?
sobes.tech AI
Odpoveď od AI
V Go, ak mapa (mapa) nebola inicializovaná (t.j. je rovná nil), pokus o získanie hodnoty podľa kľúča nezpôsobí paniku, ale jednoducho vráti nulovú hodnotu pre typ hodnoty a booleovskú vlajku false, čo naznačuje, že kľúč chýba.
Príklad:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Vypíše: 0 false
Avšak, ak sa pokúsite zapísať hodnotu do neinitializovanej mapy, dôjde k panike:
m["key"] = 10 // panika: priradenie do nil mapy
Preto je potrebné mapu inicializovať, napríklad pomocou make, aby ste ju mohli bezpečne používať:
m = make(map[string]int)
m["key"] = 10 // teraz funguje správne