Sobes.tech
Junior — Middle

Go tilida slice bilan ishlashda, agar u aniq belgilab qo'yilmagan bo'lsa, qanday harakatlar mumkin?

sobes.tech AI

AIdan javob

Go'da, agar slice aniq tarzda inicializatsiya qilinmagan bo'lsa (ya'ni, nil qiymatiga ega bo'lsa), quyidagi amallarni bajarish mumkin:

  • nil yoki emasligini tekshirish (masalan, if slice == nil), bu slice ning inicializatsiya qilinganligini aniqlash uchun foydalidir.
  • len(slice) va cap(slice) yordamida uzunlik va sig'imi olish. nil slice uchun uzunlik va sig'im 0 ga teng.
  • Element qo'shish uchun append operatoridan foydalanish. Bu, asl slice nil bo'lsa, avtomatik ravishda yangi slice yaratadi va xotira ajratadi.

Ammo, nil yoki bo'sh slice elementlariga indeks bo'yicha murojaat qilish mumkin emas, aks holda panic yuzaga keladi.

Misol:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // endi s inicializatsiya qilindi va [1] ni o'z ichiga oladi