Встроенная функция Append
Встроенная функция Append осуществляет те же операции, что и наша функция Append для добавления интовых значений, но работает со всеми типами слайсов.
Слабость Go заключается в том, что любые операции универсального типа должны обеспечиваться средой выполнения. Когда-нибудь это может измениться, но сейчас, чтобы упростить работу со слайсами, Go предоставляет встроенную общую функцию append. Она работает так же, как и наша версия слайса int, но для любого типа слайсов.
Помни, что поскольку заголовок фрагмента всегда обновляется вызовом append, тебе необходимо сохранить возвращенный фрагмент после вызова. На самом деле компилятор не позволит тебе вызвать append без сохранения результата.
Вот несколько однострочников, смешанных с операторами печати:
Самое время протестировать код!
Стоит уделить немного времени подробному обдумыванию последнего примера, чтобы понять, как конструкция слайсов позволяет этому простому вызову работать правильно.
В операции append при превышении емкости (capacity) слайса эта емкость увеличивается в два раза до 256 элементов (до версии go 1.18 в два раза увеличивалась до 1024 элементов), после увеличивается по growth фактору, но на практике эти коэффициенты не выводятся, значения являются примерными.