Necesito hacer una copia de un segmento en Go y, al leer los documentos, tengo una función de copia a mi disposición.
La función de copia incorporada copia elementos de un segmento de origen en un segmento de destino. (Como caso especial, también copiará bytes de una cadena a un segmento de bytes). El origen y el destino pueden superponerse. Copiar devuelve el número de elementos copiados, que será el mínimo de len (src) y len (dst).
Pero cuando lo hago:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Mi tmp
está vacío como estaba antes (incluso intenté usarlo arr, tmp
):
[]
[1 2 3]
Puedes comprobarlo en el patio de juegos . Entonces, ¿por qué no puedo copiar una porción?
dst
debería ser al menos tan grande como muchos de los elementos que desea copiar (para una copia completa src
que significa len(dst) >= len(src)
).
b := append([]int{}, a...)