go語言之陣列

2021-08-20 02:58:50 字數 1134 閱讀 3614

陣列是go語言程式設計中最常用的資料結構之一,陣列中的每個資料被稱為陣列元素,乙個陣列中元素的個數被稱為陣列的長度。陣列的宣告方法:

var arr [32]int //宣告乙個長度為32的陣列,陣列中的元素為int

var arr [12]*int //宣告乙個長度為12的陣列,陣列中的元素為*int

var arr [3][5]int //宣告乙個3行5列二維資料,陣列中元素為int

在go語言中,陣列的長度在定義之後就不可以更改,在宣告陣列長度可以為乙個常量或者乙個常量表示式(常量表示式是指在編譯期即可以計算結果的表示式)。陣列的長度是該陣列型別的乙個內建常量,可以用go語言的內建函式len()來獲取,例如:

arrlen := len(arr)
遍歷陣列的方式和字串的遍歷方式相同,第一種方式是使用陣列下標來訪問陣列中的元素,陣列的下標從0開始,例如:

for i := 0; i < len(arr); i++
第二種訪問方式是使用關鍵字range,range具有兩個返回值,第乙個返回值為元素在陣列中的下標,第二個返回值為元素的值,用於便捷地遍歷容器中的元素,上面的遍歷過程可以改寫為如下的寫法:

for index, val := range arr
note:在go語言中陣列是乙個值型別,所有的值型別變數在賦值和作為引數傳遞時都將產生一次複製動作,如果將陣列作為函式的引數型別,則在函式呼叫時該引數將發生資料複製,因此,在函式體重無法修改傳入的陣列的內容,因為函式內操作的只是所傳入陣列的乙個副本。**如下:

package main

import "fmt"

func modify(arr [5]int)

fmt.println("func modify arr = ", arr)

}func main()

modify(arr)

fmt.println("func main arr = ", arr)

}

輸出結果:

func modify arr = [2 3 4 5 6]

func main arr = [1 2 3 4 5]

go語言之陣列與切片

都屬於集合類的型別,它們的值用來儲存某一型別的值。本質上來說,我們可以把切片看做是對陣列的一層簡單的封裝,每個切片的底層資料結構都是陣列,它可以看作是對陣列某個連續片段的引用,這裡需要注意的幾點是 我們可以通過切片字面量表示式int和內建make函式make int,5,6 初始化乙個切片,也可以通...

Go語言之GO 語言常量

相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。常量的宣告和變數宣告非常類似,只是把var換成了const,常量在定義的時候必須賦值。const pi 3.1415 const e 2.7182宣告了pi和e這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。多個常...

go語言之陣列的深度理解

陣列指標和指標陣列 陣列指標 我們可以宣告乙個指標變數,指向乙個陣列 arr int 陣列指標 var ptr int arr 簡寫 ptr arr指標陣列 就是乙個陣列裡面存放的都是指標 x,y 1,2var arrptr 5 int 沒有手動初始化的元素,已經自動初始化指標型別對應的零值 nil...