Junior — Middle
Kuidas pääseda väärtustele sõnastikus, mis pole veel eelnevalt loodud?
sobes.tech AI
Vastus AI-lt
Go keeles, kui kaart (map) pole veel loodud (st. nil), siis võtme järgi elementidele juurdepääs ei põhjusta paanikaga kaasnevat viga, vaid tagastab lihtsalt elemendi tüübi nullväärtuse.
Näiteks:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Näitab 0, viga ei teki
Kuid, proovides määrata väärtust nil-kaardile, tekib panic:
m["key"] = 10 // panic: määramine nil-kaardile
Seetõttu tuleb enne kirjutamist kaardile veenduda, et see on initsialiseeritud, näiteks:
m = make(map[string]int)
m["key"] = 10
Nii saab lugedes nil-kaardile ligi ilma vigadeta, kuid kirjutades tuleb kaart eelnevalt luua.