概念陣列是具有固定長度,並且有零個或多個相同資料型別元素的序列,陣列長度是陣列型別的一部分,也就是說 [3]int 和 [4]int 是兩個不同型別的陣列,二者不可以比較,陣列通過索引訪問元素,go 語言內建函式 len 可以返回陣列的長度,在 go 語言中,陣列是值傳遞。
02
宣告陣列和初始化
在 go 語言中,宣告陣列需要顯式指定陣列名稱、陣列長度和陣列型別,預設情況下,未顯示初始化乙個新宣告陣列中的元素,陣列初始值為元素型別的零值。在宣告陣列時,可以顯式初始化陣列的元素,並且可以指定索引位置和定義索引位置別名。其中,指定索引位置初始化陣列元素,陣列的長度為最大的索引位置數值加 1。通過**,我們演示宣告乙個新陣列的幾種方式。
宣告多維陣列,僅第一維度允許使用省略號。
03
陣列比較
在 go 語言中,陣列支援比較,需要注意的是,陣列的長度是陣列型別的一部分,也就是說 [3]int 和 [4]int 是兩個不同的資料型別,不可以比較。在陣列型別一致的前提下,陣列之間才可以比較,並且只有陣列的所有元素值全部相等,陣列才相等。通過**,我們演示陣列比較的用法。
var arr6 = [5]intvar arr7 = [...]intvar arr8 = [5]intif arr6 == arr7 else if arr6 == arr8
陣列遍歷
在 go 語言中,除了使用 for 語句通過迴圈訪問陣列的索引,遍歷陣列元素之外,還可以使用 for...range 遍歷陣列,並且可以使用 「_」 忽略陣列的索引。通過**,我們演示使用 for...range 遍歷陣列。
var arr6 = [5]intfor index, value := range arr6 for _, value := range arr6
05指標陣列和陣列指標
在 go 語言中,指標陣列是指數組的元素為指標型別的值,陣列指標是指數組的記憶體位址。陣列指標可以直接用來操作元素。通過**,我們演示指標陣列和陣列指標的用法。
x, y := 1, 2a := [2]*intp := &afmt.println("陣列的元素為指標型別的指標陣列:", a)fmt.println("儲存陣列的記憶體位址的陣列指標:", p)
06陣列是值傳遞
在 go 語言中,陣列是值傳遞,賦值和傳參都會建立乙個陣列的副本,宣告乙個新陣列,使用原陣列賦值給新陣列,修改原陣列,新陣列的元素值不改變,通過**,我們演示陣列是值傳遞。
完整**:
輸出結果:
arr 陣列的第乙個元素是:0arr: [0 0 0]arr2: [1 2 3 4]arr3 的長度:50 lucyarr4: lucy0 0 100二維陣列 arrs: [[1 2 3] [10 20 30]]arrs2: [[[1 2 3] [4 5 6]] [[11 12 13] [14 15 16]]]arr6 與 arr7 相等arr6[0]=1arr6[1]=2arr6[2]=3arr6[3]=4arr6[4]=5arr6= 1arr6= 2arr6= 3arr6= 4arr6= 5陣列的元素為指標型別的指標陣列:[0xc0000b4080 0xc0000b4088]儲存陣列的記憶體位址的陣列指標:&[0xc0000b4080 0xc0000b4088]arr9: [1 2 3]arr10: [1 2 3]arr9: [10 2 3]arr10: [1 2 3]
GO語言學習之陣列
陣列是乙個由 固定長度的 特定型別元素 組成的序列,乙個陣列可以由乙個或多個元素組成 因為陣列的元素是固定的,所以在go語言當中很少直接使用陣列.一 陣列宣告 陣列宣告語法 var 陣列變數名 元素數量 type 陣列的每個元素都可以通過索引下標來訪問,索引下標的範圍是從0開始,內建函式len 可以...
Go語言學習 陣列
陣列是go語言程式設計中最常用的資料結構之一。顧名思義,陣列就是指一系列同一型別資料的集合。陣列中包含的每個資料被稱為陣列元素 element 乙個陣列包含的元素個數被稱為陣列的長度。在go語言中陣列是乙個值型別 value type 是真真實實的陣列,而不是乙個指向陣列記憶體起始位置的指標,也不能...
GO語言學習 陣列
定義乙個陣列var 陣列變數名 元素數量 元素型別 var a 3 int定義乙個int陣列 長度為 3 fmt.println a 輸出結果為 0 0 0 在宣告陣列時,如果沒有對陣列進行賦值 則會為該型別的預設值 int 型別為 0 string型別為 在定義的時候賦值var a 3 int 長...