Sobes.tech
Junior — Middle

Ako sa pristupuje k hodnotám v slovníku, ktorý ešte nebol vopred vytvorený?

sobes.tech AI

Odpoveď od AI

V jazyku Go, ak mapa (map) ešte nebola vytvorená (teda je nil), pokus o prístup k prvkom pomocou kľúča nezpôsobí paniku, ale jednoducho vráti nulovú hodnotu typu prvkov.

Napríklad:

var m map[string]int // m == nil
fmt.Println(m["key"]) // Vypíše 0, nezpôsobí chybu

Avšak, pokus o priradenie hodnoty do nil mapy spôsobí paniku:

m["key"] = 10 // panic: priradenie do položky v nil mape

Preto je potrebné pred zápisom do mapy uistiť sa, že je inicializovaná, napríklad:

m = make(map[string]int)
m["key"] = 10

Takto je možné pri čítaní pristupovať k nil mape bez chýb, ale pri zápise je nutné mapu predtým vytvoriť.