Функция append добавляет элементы к срезу. Она возвращает новый срез, поскольку исходный может быть изменен.
При добавлении элементов append может использовать существующую вместимость (capacity) среза, если её достаточно. В этом случае новый срез будет указывать на ту же базовую часть массива, что и исходный, но его длина (length) увеличится.
Если вместимости недостаточно, append выделяет новый, более крупный базовый массив, копирует туда элементы из исходного среза
и добавляет новые. Новый срез будет указывать на этот новый массив.
Как правило, размер нового массива удваивается при недостатке вместимости, чтобы минимизировать количество будущих перераспределений.
go