J'ai besoin de faire une copie d'une tranche dans Go et en lisant la documentation, une fonction de copie est à ma disposition.
La fonction intégrée de copie copie les éléments d'une tranche source dans une tranche de destination. (Dans un cas particulier, il copiera également les octets d'une chaîne vers une tranche d'octets.) La source et la destination peuvent se chevaucher. Copy renvoie le nombre d'éléments copiés, qui sera le minimum de len (src) et len (dst).
Mais quand je fais:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
My tmpest vide comme avant (j'ai même essayé de l'utiliser arr, tmp):
[]
[1 2 3]
Vous pouvez le vérifier sur le terrain de jeu . Alors pourquoi ne puis-je pas copier une tranche?
dstdevrait être au moins aussi grande que le nombre d'éléments que vous souhaitez copier (pour une copie complète de srccela signifie len(dst) >= len(src)).
b := append([]int{}, a...)