Sobes.tech
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, която улеснява работата с динамични колекции.