English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基础教程

Golang 控制语句

Golang 函数 & 方法

Golang 结构体

Golang 切片 & 数组

Cadenas (String) de Go

Punteros de Go

Interfaces de Go

Concurrencia de Go

Excepciones (Error) de Go

Misceláneas de Go

Copia de array en Go

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]