copy(dst, src) копирует элементы из src в dst, возвращает количество скопированных элементов = min(len(dst), len(src)). Не аллоцирует — копирует в существующий слайс.
src := []int{1, 2, 3}
dst := make([]int, 3)
n := copy(dst, src) // n = 3
// Копирование части
copy(dst, src[1:]) // dst = [2, 3, 3]
Слайсы могут пересекаться — copy корректно обрабатывает overlapping. Также работает для копирования строки в []byte: copy(buf, "hello").