Junior — Middle
Ի՞նչ դեպքերում է անվտանգ տվյալներ կարդալ Map-ից, որը դեռ չի եղել հստակ ինիցիալիզացված։
sobes.tech AI
Պատասխան AI-ից
Go-ում, map-ից ընթերցումը, որը չի եղել հստակ ինիցիալիզացված (այսինքն, nil է), անվտանգ է, բայց սահմանափակումներով:
Եթե map-ը nil է, ապա՝
- Արժեքի ընթերցումը ըստ բանալիի վերադարձնում է արժեքի զրոյական արժեքը և
false՝ ստուգելով բանալիի առկայությունը: - Նշանակումը (գրառումը) նման
map-ում կհանգեցնի panic-ի:
Օրինակ՝
var m map[string]int // m == nil
value, ok := m["key"] // անվտանգ, value == 0, ok == false
// m["key"] = 10 // panic: նշանակում nil-մապում
Ահա թե ինչու՝ ընթերցումը map-ից անվտանգ է, եթե այն չի սկսվել, բայց գրառումը՝ ոչ։ Գրառելու համար նախ պետք է make-ով սկսել map-ը։