关于切片的一个问题

progyoung · 2018-10-22 22:57:00 · 1328 次点击

fmt.Println(list[1:]) 这个不好理解? 那如果list = make([]int,0,0) list=list[0:],这样写好理解了么。类比

#8
更多评论

切片的数据结构有两个属性,len(长度)和cap(容量) 只要开始索引和结束索引不大于cap就不会出现异常,你这个例子里的len(list)==1,cap(list)==1,所以fmt.Println(list[1:])不会出异常

#1

1楼 @18601400252 谢谢回复, 但是你是否验证过你的说法呢?

list := make([]int, 10, 20)
fmt.Println("len:", len(list))
fmt.Println("cap:", cap(list))
fmt.Println(list)
fmt.Println(list[11:])

最后一行切片的开始索引并没有超过20,但还是出错了?

#2