Junior — Middle
Qaysi hollarda Mapga qo'shish operatsiyasini bajarish mumkin, u hali in'ektsiyalanmagan bo'lsa?
sobes.tech AI
AIdan javob
Go tilida, map ga qo'shish operatsiyasini bajarish mumkin emas, agar u in'ektsiyalashmagan bo'lsa (ya'ni, nil bo'lsa), chunki bu ishga tushirish vaqtida panikaga olib keladi.
map ni make funksiyasi yordamida in'ektsiyalash mumkin:
m := make(map[string]int)
ms["key"] = 42 // to'g'ri
Agar map nil bo'lsa, yozish urinish panikaga olib keladi:
var m map[string]int
m["key"] = 42 // panika: `nil` mapga yozish
Istisno:
- Agar
mape'lon qilingan bo'lsa, lekin in'ektsiyalanmagan bo'lsa, uni to'g'ridan-to'g'ri qo'shishdan oldin in'ektsiyalash mumkin. - Ba'zan,
mapkonstruktor yoki funksiyada in'ektsiyalash va keyin uzatiladi.
Shuning uchun, in'ektsiyalanmagan map ga qo'shish faqat uning aniq in'ektsiyalashidan so'ng mumkin, ya'ni make yordamida yoki allaqachon in'ektsiyalashgan va in'ektsiyalashgan map ga tayinlashdan so'ng. Boshqa holda, operatsiya ishga tushirish vaqtida xato bilan tugaydi.