先分析这段代码:
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。