Junior — Middle
Какви последици възникват при използване на метода append за слайс, обявен без начални параметри?
sobes.tech AI
Отговор от AI
Ако слайс в Go е обявен без начални параметри, например var s []int, той първоначално е равен на nil и не сочи към заделен масив. При използване на функцията append, Go автоматично заделя нов масив и добавя елементите, връщайки нов слайс с необходимата капацитет.
Това означава, че append работи безопасно с nil-слайсове, и можете да напишете:
var s []int // nil-слайс
s = append(s, 1, 2, 3) // сега s сочи към нов масив с елементите
Последици:
- Не е необходимо да инициализирате слайса преди използване на
append. - При първия извикване на
appendсе заделя памет. - Ако слайсът е nil, то
len(s) == 0иcap(s) == 0.
Така използването на append с nil-слайсове е стандартна практика в Go, която улеснява работата с динамични колекции.