Как работает append?

Junior
790 просмотров
AFK Offer AI

append добавляет элементы в слайс и возвращает новый слайс:

s := []int{1, 2, 3}
s = append(s, 4, 5)

Внутри append проверяет: достаточно ли capacity.

  • Если да — элементы записываются в существующий массив, length увеличивается
  • Если нет — выделяется новый массив побольше, данные копируются
Важно: append ВСЕГДА возвращает результат, нужно присваивать обратно s = append(s, ...). Если забыть — можно потерять данные при реаллокации.

// Добавить слайс к слайсу:
s1 = append(s1, s2...)

Нюанс: два слайса могут разделять один массив. Append в один может неожиданно изменить другой, если capacity достаточно.

Следующий вопрос

Что такое trigger в БД?