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