Devo fare una copia di una slice in Go e leggendo i documenti c'è una funzione di copia a mia disposizione.
La funzione integrata di copia copia gli elementi da una sezione di origine in una sezione di destinazione. (In un caso speciale, copierà anche i byte da una stringa a una porzione di byte.) L'origine e la destinazione potrebbero sovrapporsi. Copia restituisce il numero di elementi copiati, che sarà il minimo di len (src) e len (dst).
Ma quando lo faccio:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Il mio tmpè vuoto come prima (ho anche provato a usare arr, tmp):
[]
[1 2 3]
Puoi controllarlo su go playground . Allora perché non riesco a copiare una fetta?
dstdovrebbe essere grande almeno quanto il numero di elementi che vuoi copiare (per una copia completa srcsignifica len(dst) >= len(src)).
b := append([]int{}, a...)