首先对于go语言的切片
package main
import "fmt"
func main() {
arr :=[...]int{1,2,3,4}
sli1 :=arr[0:2]
sli2 :=arr[2:4]
fmt.Println("切片后的数组 sli1",sli1)
fmt.Println("切片后的数组 sli2",sli2)
sli2=append(sli2,5)
fmt.Println("扩容后的数组",sli2)
fmt.Println("扩容后原始数组",arr)
sli1=append(sli1, 5)
fmt.Println("扩容后的数组",sli1)
fmt.Println("扩容后初始数组",arr)
}
此时运行之后,可以得到,第一次扩容后原始数组内容为[1,2,3,4],没有被改变,只是进行切片后的数组进行扩容
但是第二次扩容,原始数组内容变为[1,2,5,4],原始数组被更改,因为进行切片时,取的是原始数组的前两个值,当进行数组的扩容时,扩容之后变成了三个值,但是对于原始数组来说,只是更改了第三个数值的值。只是更改第三个数值。