Мне нужно сделать копию фрагмента в Go и, читая документы, в моем распоряжении есть функция копирования .
Встроенная функция копирования копирует элементы из исходного слоя в целевой. (В особом случае он также копирует байты из строки в часть байтов.) Источник и место назначения могут перекрываться. Копирование возвращает количество скопированных элементов, которое будет минимум len (src) и len (dst).
Но когда я сделаю:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Мой tmpпо-прежнему пуст (даже пробовал использовать arr, tmp):
[]
[1 2 3]
Вы можете проверить это на игровой площадке . Так почему я не могу скопировать срез?
dstдолжно быть не меньше, чем количество элементов, которые вы хотите скопировать (для полной копии srcэто означает len(dst) >= len(src)).
b := append([]int{}, a...)