[GO]切片
阿新 • • 發佈:2018-09-04
三個點 區別 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 = [1020 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]切片