Junior — Middle
Ҳангоми истифодаи функсияи Append дар забони Go, чӣ тағиротҳо дар слайс рух медиҳанд?
sobes.tech AI
Ҷавоб аз AI
Дар забони Go функсияи append барои илова кардани унсурҳо ба як slice истифода мешавад. Вақте ки append даъват мешавад, тағиротҳои зерин рӯй медиҳанд:
- Агар қобилияти (capacity) slice кофӣ бошад, унсурҳои нав ба массиви мавҷуда илова мешаванд ва дарозии (length) slice зиёд мешавад.
- Агар қобилият кофӣ набошад, массиви нав бо андозаи калонтар сохта мешавад, ки дар он унсурҳои кӯҳна нусхабардорӣ ва унсурҳои нав илова мешаванд. Як slice нав баргардонида мешавад, ки ба ин массив ишора мекунад.
Муҳим аст, ки дар ёд дошта бошед, ки append як slice нав бармегардонад, бинобар ин натиҷаро бояд ба он баргардонед:
s := []int{1, 2, 3}
s = append(s, 4, 5)
Бе таъин кардан, slice аслӣ тағир намеёбад.