English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
en el lenguaje de programación GoArrayEs muy similar a otros lenguajes de programación. En un programa, a veces necesitamos almacenar un conjunto de datos del mismo tipo, como una lista de calificaciones de estudiantes. Este tipo de conjunto se almacena en un array en el programa. Un array es una secuencia de longitud fija que se utiliza para almacenar elementos del mismo tipo en la memoria. Go no proporciona una función específica para copiar un array a otro. Pero podemos crear una copia del array simplemente asignando el array a una nueva variable por valor o por referencia.
Si creamos una copia del array por valor y realizamos algunos cambios en los valores del array original, estos cambios no se reflejarán en la copia del array. Y si creamos una copia del array por referencia y realizamos algunos cambios en los valores del array original, estos cambios se reflejarán en la copia del array. Como se muestra en el siguiente ejemplo:
Sintaxis:
//creando una copia del array por valor arr := arr1 //creando una copia del array por referencia arr := &arr1
Vamos a discutir este concepto con un ejemplo:
Ejemplo1:
//copia de array por valor package main import "fmt" func main() { //creación e inicialización del array //declaración abreviada my_arr1 := [5]string{"Scala", "Perl", "Java", "Python", "Go"} //copiando el array a una nueva variable //Aquí, los elementos se pasan por valor my_arr2 := my_arr1 fmt.Println("Array_1: ", my_arr1) fmt.Println("Array_2:, my_arr2) my_arr1[0] = "C++" //Aquí, cuando copiamos el array //introduciendo por valor en otro array //luego realiza cambios en el contenido original //el array no se reflejará en //copia de este array fmt.Println("\nArray_1: ", my_arr1) fmt.Println("Array_2: ", my_arr2) }
Salida:
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 de copia de array por referencia:
//copia de array por referencia package main import "fmt" func main() { //creación e inicialización del array //declaración abreviada my_arr1 := [6]int{12, 456, 67, 65, 34, 34} //copiando el array a una nueva variable //Aquí, los elementos se pasan por referencia my_arr2 := &my_arr1 fmt.Println("Array_1: ", my_arr1) fmt.Println("Array_2:", *my_arr2) my_arr1[5] = 1000000 //Aquí, cuando copiamos el array //introduciendo por referencia en otro array //luego realiza cambios en el contenido original //el array se reflejará en //copia de este array fmt.Println("\nArray_1: ", my_arr1) fmt.Println("Array_2:", *my_arr2) }
Salida:
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]