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