Junior — Middle
Lze získat hodnotu z mapy, která ještě nebyla inicializována?
sobes.tech AI
Odpověď od AI
V Go, pokud mapa (mapa) nebyla inicializována (tedy je rovna nil), pokus o získání hodnoty podle klíče nezpůsobí paniku, ale jednoduše vrátí výchozí hodnotu pro typ hodnoty a booleovskou vlajku false, což naznačuje, že klíč chybí.
Příklad:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Vypíše: 0 false
Nicméně, pokud se pokusíte zapsat hodnotu do nedostatečně inicializované mapy, dojde k panice:
m["key"] = 10 // panika: přiřazení do nil mapy
Proto je třeba mapu inicializovat, například pomocí make, aby bylo možné ji bezpečně používat:
m = make(map[string]int)
m["key"] = 10 // nyní funguje správně