【发布时间】:2015-10-19 13:24:30
【问题描述】:
考虑下面的 go 代码:
fruits := [4]string{"apple", "orange", "mango"}
tasty_fruits := fruits[1:3]
fmt.Println(len(tasty_fruits))
fmt.Println(cap(tasty_fruits))
fmt.Println(tasty_fruits)
输出:
2
3
[orange mango]
我不明白为什么taste_fruits 的容量是3,直觉上我希望它是2,因为那是切片的长度?
如果taste_fruits 的容量是3,为什么会这样:
tasty_fruits[2] = "nectarine"
结果:
panic: runtime error: index out of range
【问题讨论】: