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