Go - 數組
阿新 • • 發佈:2017-05-09
索引 創建 16px class 表示 int32 部分 func amp
數組: Array
1. 定義:
var <arrayName> [n] (n>=0) <type>
註: 數組的長度n,也是數組定義的組成部分;所以:var intArr1 [1]int 與 var intArr2 [2]int 表示為兩個“不同類型” 的數組。
數組的常見定義:
package main import ( "fmt" ) func main() { var intArray [5]int32 fmt.Println(intArray) }
//output
[0 0 0 0 0]
或者將定義與賦值寫在一起
package main import ( "fmt" ) func main() { a := [2]int32{1, 2} fmt.Println(a) }
使用索引給數組指定的位置賦值
package main import ( "fmt" ) func main() { b := [3]int32{2: 3} // 給數組第二位賦值3 fmt.Println(b) }
不指定數組的長度
package main import ("fmt" ) func main() { c := [...]int32{1, 2, 3, 4, 5} fmt.Println(c) } //output [1 2 3 4 5]
指向數組的指針 vs 指針數組
// 指向數組的指針 d := [...]int32{3: 3} var p *[4]int32 = &d fmt.Println(p) // 指針數組 x, y := 1, 2 ptr := [...]*int{&x, &y} fmt.Println(ptr) //output &[00 0 3] [0x1164e118 0x1164e11c]
數組是“值類型”
使用“new”創建數組,返回一個指向數組的指針
ptr1 := new([2]int) ptr1[1] = 1 fmt.Println(ptr1) //output &[0 1]
多維數組
array2 := [2][3]int32{ {1, 1, 1}, {2, 2, 2}, } fmt.Println(array2) //output [[1 1 1] [2 2 2]]
Go - 數組