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