Sobes.tech
Junior — Middle

Kaip prieiti prie reikšmių žodyne, kuris dar nebuvo iš anksto sukurtas?

sobes.tech AI

Atsakymas iš AI

Go kalboje, jei žemėlapis (map) dar nebuvo sukurtas (t.y., yra nil), bandymas prieiti prie elementų pagal raktą nesukels panikos, o tiesiog grąžins elemento tipo nulines reikšmės.

Pavyzdžiui:

var m map[string]int // m == nil
fmt.Println(m["key"]) // Išves 0, nesukels klaidos

Tačiau, bandymas priskirti reikšmę nil žemėlapiui sukels paniką:

m["key"] = 10 // panika: priskyrimas į nil žemėlapį

Todėl prieš rašant į žemėlapį, būtina įsitikinti, kad jis yra inicializuotas, pavyzdžiui:

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

Taip, skaitant, galima prieiti prie nil žemėlapio be klaidų, tačiau rašant, būtina iš anksto sukurti žemėlapį.