Muszę zrobić kopię wycinka w Go i po przeczytaniu dokumentów mam do dyspozycji funkcję kopiowania .
Wbudowana funkcja copy kopiuje elementy z wycinka źródłowego do wycinka docelowego. (W specjalnym przypadku kopiuje również bajty z łańcucha do fragmentu bajtów). Źródło i miejsce docelowe mogą się nakładać. Copy zwraca liczbę skopiowanych elementów, która będzie minimum len (src) i len (dst).
Ale kiedy robię:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Mój tmp
jest pusty, jak wcześniej (próbowałem nawet użyć arr, tmp
):
[]
[1 2 3]
Możesz to sprawdzić na placu zabaw . Dlaczego więc nie mogę skopiować kawałka?
dst
powinno mieć co najmniej tyle elementów, które chcesz skopiować (pełna kopia src
oznacza to len(dst) >= len(src)
).
b := append([]int{}, a...)