1. 程式人生 > 其它 >go學習之陣列

go學習之陣列

陣列是同一種資料型別元素的集合。 在Go語言中,陣列從宣告時就確定,使用時可以修改陣列成員,但是陣列大小不可變化。

陣列定義

var 陣列變數名 [元素數量]T

例如:var a [5]int

注意:陣列的長度必須是常量,並且長度是陣列型別的一部分。一旦定義,長度不能變。a [5]int 和 a [10]int 是不同型別,不能做比較。go語言是強型別語言,相同型別的變數才能比較
陣列初始化

1、陣列定義後,預設元素都是零值(布林值:fales,整型:,字串:"")
列如:
var a [3]int
fmt.Print(a)
輸出:[0 0 0]

2、陣列定義後給初始值
例如:
var a 
= [...]string{"北京", "上海", "深圳"} fmt.Print(a) 說明:go可以根據初始值的個數自行推斷陣列的長度 3、通過索引方式初始化 例如: a := [...]int{1: 1, 3: 5}
陣列迴圈有如下兩種方式

//for 迴圈
var a = [...]string{"北京", "上海", "深圳"}
for i := 0; i < len(a); i++ {
    fmt.Println(a[i])
}

//for range 遍歷 //如果不需要索引可以使用“_”接收
for index, value := range a {
    fmt.Println(index, value)
}

多維資料遍歷

a := [3][2]string{
    {"北京", "上海"},
    {"廣州", "深圳"},
    {"成都", "重慶"},
}
for _, v1 := range a {
    for _, v2 := range v1 {
        fmt.Printf("%s\t", v2)
    }
    fmt.Println()
}
注意
go語言中陣列arry是可變+拷貝資料型別

arry1 := [3]string{"A", "B", "C"} 
arry2 := arry1
arry1[0] = "a" // arry2資料不變
arry2[
1] = "b"// arry1資料不變