добавление в срезы и копирование срезов
Last updated
Was this helpful?
Last updated
Was this helpful?
Встроенные функции append и copy помогают в общих операциях срезов. Для обеих функций результат не зависит от того, перекрывается ли память, на которую ссылаются аргументы.
функция append добавляет ноль или более значений x к s типа S, который должен быть типом среза, и возвращает полученный срез, также типа S. Значения x передаются параметру типа ... T, где T тип элемента S и применяются соответствующие правила передачи параметров. В особом случае append также принимает первый аргумент, присваиваемый (assignable) типу []byte
, со вторым аргументом строкового типа, за которым следует .... В этой форме добавляются байты строки.
Если емкость s недостаточно велика, чтобы соответствовать дополнительным значениям, append выделяет новый, достаточно большой базовый массив, который подходит как существующим элементам среза, так и дополнительным значениям. В противном случае append повторно использует базовый массив.
Функция copy копирует элементы среза из исходного src в dst назначения и возвращает количество скопированных элементов. Оба аргумента должны иметь одинаковый тип элемента T и должны быть присваиваемыми срезу типа []T
. Количество копируемых элементов является минимумом len(src) и len(dst). В особом случае copy также принимает целевой аргумент, назначаемый типу []byte
с исходным аргументом строкового типа. Эта форма копирует байты из строки в срез байтов.
Примеры: