Junior — Middle
Jak se přistupuje hodnotám ve slovníku, který ještě nebyl předem vytvořen?
sobes.tech AI
Odpověď od AI
V jazyce Go, pokud mapa (map) ještě nebyla vytvořena (tedy je nil), pokus o přístup k jejím prvkům pomocí klíče nezpůsobí paniku, ale jednoduše vrátí nulovou hodnotu typu prvků.
Například:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Vypíše 0, nezpůsobí chybu
Nicméně, pokus o přiřazení hodnoty do nil mapy povede k panice:
m["key"] = 10 // panic: přiřazení do položky v nil mapě
Proto je třeba před zápisem do mapy ujistit se, že je inicializována, například:
m = make(map[string]int)
m["key"] = 10
Tímto způsobem lze při čtení přistupovat k nil mapě bez chyb, ale při zápisu je nutné mapu předem vytvořit.