Sobes.tech
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