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

Tutorial di base Go

Istruzioni di controllo Go

Funzione & Metodo Go

Struttura Go

Taglio & Array Go

Stringa Go (String)

Puntatore Go

Interfaccia Go

Concordanza Go

Eccezioni Go (Error)

Altri oggetti Go

Copia dell'array in Go linguaggio

Linguaggio di programmazione GoArrayÈ molto simile ad altri linguaggi di programmazione. Nella programmazione, a volte abbiamo bisogno di memorizzare un insieme di dati dello stesso tipo, ad esempio una lista di valutazioni degli studenti. Questo tipo di insieme viene memorizzato nell'array del programma. L'array è una sequenza di lunghezza fissa utilizzata per memorizzare elementi dello stesso tipo nella memoria. Go non fornisce una funzione integrata specifica per copiare un array in un altro. Tuttavia, possiamo creare una copia dell'array assegnando semplicemente l'array a una nuova variabile tramite valore o riferimento.

Se creiamo una copia dell'array tramite valore e facciamo alcune modifiche ai valori dell'array originale, queste non verranno riflettute nella copia dell'array. Inoltre, se creiamo una copia dell'array tramite riferimento e facciamo alcune modifiche ai valori dell'array originale, queste verranno riflettute nella copia dell'array. Come mostrato nell'esempio seguente:

Sintassi:

//按值创建数组的副本
arr := arr1
//通过引用创建数组的副本
arr := &arr1

Discutiamo questo concetto con un esempio:

Esempio 1:

//按值复制数组
package main
import "fmt"
func main() {
    //创建和初始化数组
    //使用简写声明
    my_arr1 := [5]string{"Scala", "Perl", "Java", "Python", "Go"}
    //将数组复制到新变量中
    //在这里,元素按值传递
    my_arr2 := my_arr1
    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", my_arr2)
    my_arr1[0] = "C++"
    //在这里,当我们复制数组时
    //按值放入另一个数组
    //然后对原始内容进行更改
    //数组不反映在
    //数组副本
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2: ", my_arr2)
}

Output:

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]

Esempio di copia di array per riferimento:

//通过引用复制数组
package main
import "fmt"
func main() {
    //创建和初始化数组
    //使用简写声明
    my_arr1 := [6]int{12, 456, 67, 65, 34, 34}
    //将数组复制到新变量中
    //在这里,元素通过引用传递
    my_arr2 := &my_arr1
    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)
    my_arr1[5] = 1000000
    //在这里,当我们复制数组时
    //通过引用放入另一个数组
    //然后对原始内容进行更改
    //数组将反映在
    //数组副本
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)
}

Output:

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]