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