golang-陣列基本使用

机械心發表於2024-07-09

Go語言中的陣列是一個固定長度的元素序列,這些元素都是相同的型別。陣列是值型別,這意味著當它們被賦值給新的變數時,會進行一次陣列的複製。

建立陣列

透過指定元素型別和陣列長度來建立陣列。陣列長度必須是一個常量表示式,因為陣列的長度是其型別的一部分。 陣列的數量一旦確定就不能更改了,就是說大小不可變

var a [5]int // 宣告一個包含5個整數的陣列,預設值為0
b := [3]int{1, 2, 3} // 宣告並初始化一個包含3個整數的陣列
c := [...]int{4, 5, 6} // 使用...讓編譯器自動計算陣列的長度

元素型別

陣列可以包含任何型別的元素,包括但不限於整數、浮點數、字串甚至其他陣列。

var d [2]string // 包含2個字串的陣列
var e [3][2]int // 二維陣列,包含3個包含2個整數的陣列

遍歷陣列

遍歷陣列通常使用for迴圈,可以透過索引遍歷,也可以使用range關鍵字遍歷。

// 透過索引遍歷
for i := 0; i < len(a); i++ {
    fmt.Println(a[i])
}

// 使用range遍歷
for index, value := range b {
    fmt.Printf("Index: %d, Value: %d\n", index, value)
}

使用range時,它會返回兩個值:當前索引和該索引處的元素值。如果只需要元素值,可以使用_作為匿名變數來忽略索引:

for _, value := range b {
    fmt.Println(value)
}

二維陣列

二維陣列在Go中是元素型別為陣列的陣列。

// 宣告並初始化一個二維陣列
var f [2][3]int = [2][3]int{{1, 2, 3}, {4, 5, 6}}

// 遍歷二維陣列
for i := 0; i < len(f); i++ {
    for j := 0; j < len(f[i]); j++ {
        fmt.Printf("Element [%d][%d] = %d\n", i, j, f[i][j])
    }
}

// 使用range遍歷二維陣列
for i, row := range f {
    for j, value := range row {
        fmt.Printf("Element [%d][%d] = %d\n", i, j, value)
    }
}

相關文章