1. 程式人生 > >[GO]切片

[GO]切片

三個點 區別 spa span \n 的區別 bsp 自動 數組

比如這裏要對一個數組進行切片

package main

import "fmt"

func main() {
  

  array := [...]int{10, 20, 30, 0, 0} //三個點也可以不寫
  slice := array[0:3:5]
  fmt.Println("slice = ", slice)
  fmt.Println("len = ", len(slice))
  fmt.Println("cap = ", cap(slice))


}

這裏slice將會從array的第0個元素開始取,取到下標為3的元素,整個切片的容量為5-0=5個,長度為3-0=3個

結果為:

slice =  [10
20 30] len = 3  //這裏打印的是長度 cap = 5 //這裏打印的是容量

這裏可以看得出來 ,數組與切片最大的區別就是在方括號裏有沒有固定長度,如果有那麽這是一個數組,沒有的話那就是一個切片

package main

import "fmt"

func main()  {
    a := [5]int{}      //這種方式最常用,為自動推導類型
    fmt.Printf("a len = %d, cap = %d\n ", len(a), cap(a))

    b := make([]int, 4, 4)  //使用make函數進行切片的創建,make(type, 長度,容量)
    fmt.Printf(
"b make len = %d, cap = %d\n ", len(b), cap(b)) c := make([]int, 3)    //使用make函數,如果沒有指定容量,那麽它的默認值就跟長度相同 fmt.Printf("c make len = %d, cap = %d\n ", len(c), cap(c)) }

[GO]切片