Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項(xiàng)

Go 語言數(shù)組復(fù)制

Golang編程語言中的數(shù)組與其他編程語言非常相似。在程序中,有時(shí)我們需要存儲一組相同類型的數(shù)據(jù),例如學(xué)生評分列表。這種類型的集合使用數(shù)組存儲在程序中。數(shù)組是固定長度的序列,用于將同類元素存儲在內(nèi)存中。Golang沒有提供將一個(gè)數(shù)組復(fù)制到另一個(gè)數(shù)組的特定內(nèi)置函數(shù)。但是我們可以通過簡單地通過值或引用將數(shù)組分配給新變量來創(chuàng)建數(shù)組的副本。

如果我們通過值創(chuàng)建數(shù)組的副本并在原始數(shù)組的值中進(jìn)行了一些更改,則它不會反映在該數(shù)組的副本中。 而且,如果我們通過引用創(chuàng)建數(shù)組的副本,并對原始數(shù)組的值進(jìn)行了一些更改,那么它將反映在該數(shù)組的副本中。 如以下示例所示:

語法:

//按值創(chuàng)建數(shù)組的副本
arr := arr1

//通過引用創(chuàng)建數(shù)組的副本
arr := &arr1

讓我們借助示例來討論這個(gè)概念:

范例1:

//按值復(fù)制數(shù)組
package main

import "fmt"

func main() {

    //創(chuàng)建和初始化數(shù)組
    //使用簡寫聲明
    my_arr1 := [5]string{"Scala", "Perl", "Java", "Python", "Go"}

    //將數(shù)組復(fù)制到新變量中
    //在這里,元素按值傳遞
    my_arr2 := my_arr1

    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", my_arr2)

    my_arr1[0] = "C++"

    //在這里,當(dāng)我們復(fù)制數(shù)組時(shí)
    //按值放入另一個(gè)數(shù)組
    //然后對原始內(nèi)容進(jìn)行更改
    //數(shù)組不反映在
    //該數(shù)組的副本
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2: ", my_arr2)
}

輸出:

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]

通過引用復(fù)制數(shù)組示例:

//通過引用復(fù)制數(shù)組
package main

import "fmt"

func main() {

    //創(chuàng)建和初始化數(shù)組
    //使用簡寫聲明
    my_arr1 := [6]int{12, 456, 67, 65, 34, 34}

    //將數(shù)組復(fù)制到新變量中
    //在這里,元素通過引用傳遞
    my_arr2 := &my_arr1

    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)

    my_arr1[5] = 1000000

    //在這里,當(dāng)我們復(fù)制數(shù)組時(shí)
    //通過引用放入另一個(gè)數(shù)組
    //然后對原始內(nèi)容進(jìn)行更改
    //數(shù)組將反映在
    //該數(shù)組的副本
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)
}

輸出:

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]
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清