Go——cap

先分析这段代码:

package main

import "fmt"

func main() {
	var SliceNumber []int = []int{1, 2, 3, 4, 5, 6, 7, 8}
	var SliceNumbert []int = make([]int, 0)
	var SliceNumberf []int = make([]int, 0)
	SliceNumbert = SliceNumber[:5]
	SliceNumberf = SliceNumber[2:]
	fmt.Printf("SliceNumbert len is %d cap is %d\n", len(SliceNumbert), cap(SliceNumbert))
	fmt.Printf("SliceNumberf len is %d cap is %d", len(SliceNumberf), cap(SliceNumberf))
}

我们创建一个切片,,有八个数,又创建了两个空切片。将这两个空切片赋值。我们现在计算被赋值的两个切片的len和cap。

len

计算len()值,不难,len()值就是切片所包含的元素个数。

第一个是5,第二个是6

cap

计算cap值,cap是容量。
当赋值切片时,容量是从切片指定的索引到切片的最后一个索引的大小。

也就是说,第一个cap值为8,第二个cap值为6。

Go——cap

上一篇:CAP定理:


下一篇:Go语言基础之切片