来, 看结果:
[1 2 9 4 5]
懵没懵?? 这是怎么回事呢?..., 印证了之前的猜想, 果然是一个数组....所以: 切片的容量其实是底层数组的容量
同时, 有了之前对 GO 的了解, 知道 GO 所有的函数都是以传递副本值的方式进行, 传递切片也一样, 而切片的结构体包含(数组指针, 长度, 容量)三个元素,...同理可得, 如果在函数中对切片执行了扩容操作, 那改动就不会影响原数据, 因为扩容后操作的是新的数组了.
OK. 切片到这里就结束了, 简单说就是数组上面再套一层. 切片的切片共享底层数组....最后说一句, GO 创建数组和切片的方式(数组和切片是不同的数据结构):
// 方括号为空, 创建的是切片类型
a := []int{1, 2}
// 方括号指定长度, 创建的是真正的数组类型
b :=