¿Cómo copiar una array en otra array en Golang?

Las arrays en el lenguaje de programación Golang o Go son muy similares a otros lenguajes de programación. En el programa, a veces necesitamos almacenar una colección de datos del mismo tipo, como una lista de calificaciones de los estudiantes. Este tipo de colección se almacena en un programa usando un Array. Una array es una secuencia de longitud fija que se utiliza para almacenar elementos homogéneos en la memoria. Golang no proporciona una función integrada específica para copiar una array en otra array. Pero podemos crear una copia de una array simplemente asignando una array a una nueva variable por valor o por referencia.
Si creamos una copia de una array por valor e hicimos algunos cambios en los valores de la array original, entonces no se reflejará en la copia de esa array. Y si creamos una copia de una array por referencia e hicimos algunos cambios en los valores de la array original, entonces se reflejará en la copia de esa array. Como se muestra en los siguientes ejemplos:

Sintaxis:

// creating a copy of an array by value
arr := arr1

// Creating a copy of an array by reference
arr := &arr1

Discutamos este concepto con la ayuda de los ejemplos:

Ejemplo 1:

// Go program to illustrate how
// to copy an array by value
package main
  
import "fmt"
  
func main() {
  
    // Creating and initializing an array
    // Using shorthand declaration
    my_arr1 := [5]string{"Scala", "Perl", "Java", "Python", "Go"}
  
    // Copying the array into new variable
    // Here, the elements are passed by value
    my_arr2 := my_arr1
  
    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", my_arr2)
  
    my_arr1[0] = "C++"
  
    // Here, when we copy an array
    // into another array by value
    // then the changes made in original
    // array do not reflect in the
    // copy of that array
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2: ", my_arr2)
}

Producción:

Array_1:  [Scala Perl Java Python Go]
Array_2: [Scala Perl Java Python Go]

Array_1:  [C++ Perl Java Python Go]
Array_2:  [Scala Perl Java Python Go]

Ejemplo 2:

// Go program to illustrate how to
// copy an array by reference
package main
  
import "fmt"
  
func main() {
  
    // Creating and initializing an array
    // Using shorthand declaration
    my_arr1 := [6]int{12, 456, 67, 65, 34, 34}
  
    // Copying the array into new variable
    // Here, the elements are passed by reference
    my_arr2 := &my_arr1
  
    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)
  
    my_arr1[5] = 1000000
  
    // Here, when we copy an array 
    // into another array by reference
    // then the changes made in original 
    // array will reflect in the
    // copy of that array
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)
}

Producción:

Array_1:  [12 456 67 65 34 34]
Array_2: [12 456 67 65 34 34]

Array_1:  [12 456 67 65 34 1000000]
Array_2: [12 456 67 65 34 1000000]

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *