Мне нужно сделать копию фрагмента в 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...)