Sobes.tech
Junior — Middle

Баштапкыда инициализацияланбаган болсо, бир элемент кошулгандан кийин слайс кандай көлөмдө жана канча элементке ээ болот?

sobes.tech AI

AIден жооп

Эгер Go-деги слайс баштапкыда инициализацияланбаса (ягъни, nil тигез булса), һәм сез аңа append функциясе белән бер элемент өстәсәгез, ул вакытта:

  • Өстәгәннән соң элементлар саны (len) 1 булачак.
  • Капаситет (cap) куллануның тормышка ашырылуына бәйле, ләкин гадәттә ул кечкенә капаситет белән башлана, мәсәлән 1 яки 2.

Мисал:

var s []int // nil-слайс
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // гадәттә >= 1

Шулай итеп, nil-слайска беренче элемент өстәгәндә, Go автомат рәвештә яңа слайс өчен хәтер бүлеп бирә, бу элементны саклау өчен җитәрлек капаситет белән.