Sobes.tech
Junior — Middle

Qanday elementlar va qaysi sig‘imga ega bo‘ladi slice, agar u dastlab initsializatsiya qilinmagan bo‘lsa, bitta element qo‘shilganda?

sobes.tech AI

AIdan javob

Go'da bir slice dastlab boshlang'ich holatda initsializatsiya qilinmagan bo'lsa (ya'ni, nil ga teng bo'lsa), va unga append funksiyasi yordamida bir element qo'shsangiz, unda:

  • Qo'shilgandan keyin elementlar soni (len) 1 bo'ladi.
  • Imkoniyat (cap) amalga oshirilishiga bog'liq, lekin odatda kichik imkoniyat bilan boshlanadi, masalan 1 yoki 2.

Misol:

var s []int // nil-slice
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // odatda >= 1

Shunday qilib, nil-slice ga birinchi element qo'shilganda, Go avtomatik ravishda bu elementni saqlash uchun yetarli bo'lgan yangi slice uchun xotira ajratadi.