1. 程式人生 > >8. 數組

8. 數組

就是 strong 計算 -s 所有 int 例子 arr main

【數組的聲明】

package main 

import (
    "fmt"
)

func main() {
    var a[3] int
    var b[3] string

    fmt.Println(a)
    fmt.Println(b)
}

【數組的使用】

package main 

import (
    "fmt"
)

func main() {
    var a[3] int
    var b[3] string

    a[0] = 1
    a[1] = 2
    a[2] = 3

    b[0] = "aaa"
    b[1] = "bbb"
    b[2] = "ccc"

    fmt.Println(a)
    fmt.Println(b)
}

很簡單的使用方法,註意這裏Go語言不支持數組自動擴展,所以數組定義多大,就能使用多大,比如這裏: a[3] = 4這樣就是錯誤的,會報錯: invalid array index 3 (out of bounds for 3-element array)

【初始化值】

a := [3]int{1, 2, 3}
b := [3]string{"aaa", "bbb", "ccc"}
c := [...]int{4, 5, 6, 7, 8, 9, 10}

最後一行可以不指定數組長度初始化,具體長度由初始化的值個數決定。

【遍歷數組】

遍歷數組常用的就是for循環了,但是Go語言提供了range來叠代數組:

package main 

import (
    "fmt"
)

func main() {
    str := [...]string{"a", "b", "c", "d"}

    for i := 0; i < len(str); i++ {
        fmt.Printf("%d: %s\n", i, str[i])
    }

    for key, value := range str {
        fmt.Printf("%d: %s\n", key, value)
    }

    fmt.Println(str)
}

len 可以計算數組長度

【數組切片】

切片是數組的一些功能封裝,但是切片並不產生新的數據,切片相當於對現有數據的引用。

package main 

import (
    "fmt"
)

func main() {
    
    a := [...]int{1, 2, 3, 4, 5, 6}
    b := a[1:4]

    b[0] = 999

    fmt.Println(a)
    fmt.Println(b)
}

以上面這個例子為例,結果是:

[1 999 3 4 5 6]
[999 3 4]

切片就很像是指針,他的所有操作,源數據都會被改變。

8. 數組