1. 程式人生 > >Go程式設計基礎07-切片slice

Go程式設計基礎07-切片slice

切片slice

  1. 其本身不是陣列,它指向底層陣列
  2. 作為變長陣列的替代方案,可以關聯底層陣列的區域性或全部
  3. slice為引用型別
  4. 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] }
  1. 可以使用len()獲取元素個數,cap()獲取容量
  2. 一般使用make()建立,格式為 make([]T, len, cap)
    ,如果省略cap值,則預設與len一致。len表示存數的元素個數,cap表示容量。
  1. 如果多個slice指向同一個底層陣列,其中一個slice改變值會影響全部