陣列
? 陣列是具有相同唯一型別的一組已編號且長度固定的資料項序列(這是一種同構的資料結構);這種型別可以是任意的原始型別例如整形、字串或者自定義型別(結構體、介面),陣列長度也是陣列型別的一部分,所以[5]int和[10]int是屬于不同型別的,
?:在其他語言中陣列大多是參考型別,但是在go語言中,陣列是值型別
宣告方式
var + 陣列名 + [陣列長度] + 陣列資料型別(陣列內部初始化全為0)
// 宣告一個長度為10的整型陣列array,并初始化
var array [10]int
array = [10]int {0,1,2,3,4,5,6,7,8,9}
陣列名 + ":=" + [陣列長度] + 資料型別 + {陣列初始化}
// 宣告一個長度為10的整型陣列array并進行初始化
array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// 初始化程序也可以單獨初始化特定的位數(用逗號連接)
// 宣告一個長度為10的整型陣列array并對陣列的第5位進行初始化值為4,第3位進行初始化值為2
array := [10]int{5:4,3:2}
陣列名 + ":=" + [...] + 資料型別 + {陣列初始化}("..."可以自動判斷陣列長度)
// 宣告一個長度為10的整型陣列array并進行初始化
array := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
陣列使用
通過下標訪問陣列的元素
array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(arr[5])
遍歷陣列
array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// i:陣列下標 j: 下標對應的值
for i, j := range arr {
fmt.Printf("%d : %d \t", i, j)
}
陣列賦值陣列
? 陣列可以給同它資料型別,陣列長度相同的陣列賦值
var array [10]int
arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array = arr
指標陣列
? 指標陣列和陣列本身差不多,只不過元素型別是指標
// 宣告一個長度為10的整型指標陣列
// 并在第5,6,7位上創建記憶體空間
arr := [10]*int{5:new(int),6:new(int),7:new(int)}
// 在第三位上創建記憶體空間
arr[3] = new(int)
// 在第三位上的記憶體空間里賦值為3
*arr[3] = 3
// 輸出第三位對應的記憶體空間地址,以及值
fmt.Println(arr[3])
fmt.Println(*arr[3])
?:以上需要注意的是,只可以給第3,5,6,7位賦值,因為只有它們分配了記憶體,才可以賦值,如果我們給索引0賦值,運行的時候,會提示無效記憶體或者是一個nil指標參考,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/549209.html
標籤:Go
上一篇:逍遙自在學C語言 | 關系運算子
下一篇:Go語言入門4(切片)
