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