A Tour of Go: Basics 3
Struct
用指標和用變數名引用struct裡的值,用法是一樣的。
Struct初始化語法:
type Vertex struct { X, Y int } var ( v1 = Vertex{1, 2}// has type Vertex v2 = Vertex{X: 1}// Y:0 is implicit v3 = Vertex{}// X:0 and Y:0 p= &Vertex{1, 2} // has type *Vertex )
Array
資料長度是固定的,在定義時指定。
Slices
Slices的概念與Python中的概念類似,是Array的子集。
slice只是陣列的引用,因此修改slice值就是修改數組裡的值。
[]int{1,2,3}語法含義是先定義一個數組,再建立一個slice引用這個陣列。
兩個容量:
- length:當前slice的元素個數。len(s)
- capacity:當前slice從最左邊元素開始,對應在數組裡直到最後一個元素的個數。cap(s)
特殊情況:
slice的0值是nil,對應的length和capacity都是0,沒有對應的陣列。
a := make([]int, 0, 5) 建立一個0值陣列,然後返回一個slice。
slices of slices
append function