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

Tutorial básico de Golang

Golang instruções de controle

Golang funções & métodos

Golang estruturas de dados

Golang fatias & arrays

Go String (String)

Go Ponteiros

Go Interface

Go Concurrency

Go Error (Exception)

Miscelânea Go

Go Language Array Copy

No linguagem de programação GoArrayÉ muito semelhante a outras linguagens de programação. Em um programa, às vezes precisamos armazenar um grupo de dados do mesmo tipo, por exemplo, uma lista de notas de alunos. Este tipo de conjunto é armazenado em um array no programa. Um array é uma sequência de comprimento fixo usada para armazenar elementos do mesmo tipo na memória. O Go não fornece uma função específica para copiar um array para outro. Mas podemos criar uma cópia da array simplesmente atribuindo o array a uma nova variável por valor ou referência.

Se criarmos uma cópia da array por valor e fizermos algumas alterações no valor original da array, essas alterações não refletirão na cópia da array. E se criarmos uma cópia da array por referência e fizermos algumas alterações no valor original da array, essas alterações refletirão na cópia da array. Como mostrado no seguinte exemplo:

Sintaxe:

//criar cópia da array por valor
arr  :=  arr1
//criar cópia da array por referência
arr  :=  &arr1

Vamos discutir este conceito com um exemplo:

Exemplo1:

//copia de array por valor
package   main
import   "fmt"
func   main()   {
    //criar e inicializar a array
    //declaração abreviada
    my_arr1 :=  [5]string{"Scala",   "Perl",   "Java",   "Python",   "Go"}
    //copiar a array para uma nova variável
    //Aqui, os elementos são passados por valor
    my_arr2 :=   my_arr1
    fmt.Println("Array_1:1)
    fmt.Println("Array_2:,   my_arr2)
    my_arr1[0]  =  "C++"
    //Aqui, quando copiamos a array
    //colocado em outra array por valor
    //então alterar o conteúdo original
    //a array não refletirá em
    //cópia da array
    fmt.Println("\nArray_1:1)
    fmt.Println("Array_2:2)
}

Saída:

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

Exemplo de cópia de array por referência:

//copia de array por referência
package   main
import   "fmt"
func   main()   {
    //criar e inicializar a array
    //declaração abreviada
    my_arr1 :=  [6]int{12, 456, 67, 65, 34, 34}
    //copiar a array para uma nova variável
    //Aqui, os elementos são passados por referência
    my_arr2 :=  &my_arr1
    fmt.Println("Array_1:1)
    fmt.Println("Array_2:", *my_arr2)
    my_arr1[5]  =  [ 1000000
    //Aqui, quando copiamos a array
    //colocado em outra array por referência
    //então alterar o conteúdo original
    //a array refletirá em
    //cópia da array
    fmt.Println("\nArray_1:1)
    fmt.Println("Array_2:", *my_arr2)
}

Saída:

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]