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