8. 數組
阿新 • • 發佈:2018-10-19
就是 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. 數組