Junior — Middle
Hali tayyorlanmagan xaritadan qiymat olish mumkinmi?
sobes.tech AI
AIdan javob
Go'da, agar xarita (map) boshlang'ich holatda emas (ya'ni, nil bo'lsa), unga kalit bo'yicha qiymat olishga urinish panikaga olib kelmaydi, balki faqat qiymat turi uchun nol qiymat va false booleyn flagini qaytaradi, bu kalit mavjud emasligini ko'rsatadi.
Misol:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Chiqishi: 0 false
Ammo, agar yozishga harakat qilsangiz, boshlang'ich holatda bo'lmagan xaritaga, panika yuzaga keladi:
m["key"] = 10 // panic: nil xaritaga yozish
Shuning uchun, xaritani xavfsiz ishlatish uchun, uni make yordamida boshlang'ich holatda qilish tavsiya etiladi:
m = make(map[string]int)
m["key"] = 10 // endi to'g'ri ishlaydi