Мені потрібно зробити копію фрагмента в 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...)