數組

  1. 數組:是同一種數據類型的固定長度的序列。
  2. 數組定義:var a [len]int,比如:var a[5]int (定義後長度不能變)
  3. 長度是數組類型的一部分,因此,var a[5] int和var a[10]int是不同的類型
  4. 數組可以通過下標進行訪問,下標是從0開始,最後一個元素下標是:len-1
    for i := 0; i < len(a); i++ {
    }
    for index, v := range a {
    }
  5. 訪問越界,如果下標在數組合法範圍之外,則觸發訪問越界,會panic
  6. 數組是值類型,因此改變副本的值,不會改變本身的值

數組是值類型(而切片是引用類型),賦值後是複製,改變複製後的數組不影響之前的數組。

package main

import (
    "fmt"
)

func modify(arr [5]int) {
    arr[0] = 100
    return
}

func main() {
    var a [5]int

    modify(a)
    for i := 0; i < len(a); i++ {
        fmt.Println(a[i])
    }
}
package main

import (
    "fmt"
)

func modify(arr *[5]int) {
    (*arr)[0] = 100
    return
}

func main() {
    var a [5]int

    modify(&a)
    for i := 0; i < len(a); i++ {
        fmt.Println(a[i])
    }
}

數組初始化:

a. var age0 [5]int = [5]int{1,2,3}
b. var age1 = [5]int{1,2,3,4,5}
c. var age2 = […]int{1,2,3,4,5,6}
d. var str = [5]string{3:”hello world”, 4:”tom”}

多維數組:

a. var age [5][3]int
b. var f [2][3]int = [...][3]int{{1, 2, 3}, {7, 8, 9}}

多維數組遍歷:

package main

import (
    "fmt"
)

func main() {

    var f [2][3]int = [...][3]int{{1, 2, 3}, {7, 8, 9}}

    for k1, v1 := range f {
        for k2, v2 := range v1 {
            fmt.Printf("(%d,%d)=%d ", k1, k2, v2)
        }
        fmt.Println()
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章