Go程式設計基礎07-切片slice
阿新 • • 發佈:2018-12-19
切片slice
- 其本身不是陣列,它指向底層陣列
- 作為變長陣列的替代方案,可以關聯底層陣列的區域性或全部
- slice為引用型別
- slice可以直接建立或從底層陣列獲取生成
package main
import "fmt"
func main() {
// 宣告slice
var s1 []int
fmt.Println(s1) // []
a := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(a) // [0 1 2 3 4 5 6 7 8 9]
// 獲取索引為9的值
s2 := a[8]
fmt.Println(s2) // 8
// 擷取索引為5, 6的值
s3 := a[5:7]
fmt.Println(s3) // [5 6]
// 擷取索引5到陣列的尾部有兩種方法
s4 := a[5:]
s5 := a[5:len(a)]
fmt.Println(s4) // [5 6 7 8 9]
fmt.Println(s5) // [5 6 7 8 9]
// 擷取前五個元素
s6 := a[:5]
fmt.Println(s6) // [0 1 2 3 4]
}
- 可以使用
len()
獲取元素個數,cap()
獲取容量 - 一般使用
make()
建立,格式為make([]T, len, cap)
len
一致。len
表示存數的元素個數,cap
表示容量。
- 如果多個slice指向同一個底層陣列,其中一個slice改變值會影響全部