Junior — Middle
Millised toimingud on lubatud Map-tüüpi muutujaga, mis pole veel initsialiseeritud?
sobes.tech AI
Vastus AI-lt
Go keeles muutuja map tüüp väärtus on vaikimisi nil, kui see pole initsialiseeritud.
nil-mapiga on lubatud järgmised toimingud:
- Väärtuse lugemine võtme järgi — tagastab tüübi nullväärtuse ja märguande, et võti puudub.
- Võtme olemasolu kontrollimine kasutades
value, ok := map[key].
Mittemõeldud toimingud:
- Kirjutamine (väärtuse määramine võtmele) põhjustab panic-i.
- Funktsioonide kutsumine, mis muudavad kaarti (näiteks
delete)nil-kaardil on ohutu ja ei põhjusta panic-i.
Näide:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: määramine `nil`-kaardile
delete(m, "key") // ohutu, ei tee midagi
Kaardi kasutamiseks kirjutamiseks tuleb see initsialiseerida, näiteks make abil:
m = make(map[string]int)
m["key"] = 10 // nüüd töötab