Go——cap

  • Post author:
  • Post category:其他


先分析这段代码:

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。

在这里插入图片描述



版权声明:本文为Xiang_lhh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。