Sobes.tech
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 // այժմ ճիշտ է աշխատում