Sobes.tech
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 map e'lon qilingan bo'lsa, lekin in'ektsiyalanmagan bo'lsa, uni to'g'ridan-to'g'ri qo'shishdan oldin in'ektsiyalash mumkin.
  • Ba'zan, map konstruktor 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.