package main
import "fmt"
func main() {
s := []int{2, 3, 5, 7, 11, 13}
printSlice(s)
s = s[:0]
printSlice(s)
s = s[:4]
printSlice(s)
s = s[2:]
printSlice(s)
}
func printSlice(s []int) {
fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
}
运行结果
len=6 cap=6 [2 3 5 7 11 13]
len=0 cap=6 []
len=4 cap=6 [2 3 5 7]
len=2 cap=4 [5 7]
len 长度是当前元素个数 cap 长度是底层元素个数
s := []int{2, 3, 5, 7, 11, 13} printSlice(s) len: 6 cap:6 正确
s = s[:0] len: 0 cap: 6 目前就只有0个元素,底层数组还是6个 printSlice(s)
s = s[:4] printSlice(s) len: 4 cap:6 目前是4个元素,底层还是6个
s = s[2:] printSlice(s) len: 2 cap: 4 目前是2个元素,底层元素是从第一个元素往后数的,目前是4
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。