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