🥇 Copiar elementos de un slice

🍿 ¿Cómo copiar valores de un slice en Go?

Para copiar todos los elementos de un slice existe la función copy. Para copiar valores de un slice a otro, un slice puede ser inicializado mediante otro del mismo tipo, ya que no es posible copiar los valores de un slice de enteros a otro de cadenas de strings. Una copia implica que los valores permanecen aun si el slice original es modificado o destruido.

🍿 Ejemplo de como copiar valores de un slice a otro en Go

package main

import "fmt"

func main() {
    figuras := []string{"circulo", "cuadrado", "triangulo", "rombo", "trapecio", "heptagono"}
    var figuras2 = make([]string, len(figuras))
    fmt.Println(figuras)
    copy(figuras2, figuras)
    figuras = append(figuras[:1], figuras[2:]...)
    fmt.Println(figuras2)
    fmt.Println(figuras)
}

Salida…

[circulo cuadrado triangulo rombo trapecio heptagono]
[circulo cuadrado triangulo rombo trapecio heptagono]
[circulo triangulo rombo trapecio heptagono]

🍿 Descripción del ejemplo de como copiar valores de un slice en Go

En el ejemplo actual…

  • Se crea un slice llamado figuras.
  • Se genera un contenedor para crear una copia, con la dimensión de figuras mediante make([]string, len(figuras)).
  • Se copian los valores de figuras en figuras2 mediante copy(figuras2, figuras).
  • Se elimina el elemento cuadrado de figuras.
  • Los valores de figuras2 no se han alterado.