千巷猫影
切片 a 被复制为具有值 [0, 1, 2, 9] 的新底层数组的新切片,切片 b 仍指向已修改的旧数组。a := src[:3]创建了一个切片(指向 src 头的指针,长度 = 3,容量 = 7)b := src[3:]创建了一个切片(指向 src[3] 的指针,长度 = 4,容量 = 4)a并b共享由srca = append(a, 9),追加到同一个slice时,只要不超过cap,就是修改的同一个数组append 是否将底层数组修改为 []int{0, 1, 2, 9, 4, 5, 6}是的如果append超过capof a,将分配新数组并将数据复制到新数组试试这个:package mainimport "fmt"func main() { src := []int{0, 1, 2, 3, 4, 5, 6} a := src[:3] b := src[3:] a = append(a, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9) fmt.Println(a, b)}输出:[0 1 2 9 9 9 9 9 9 9 9 9 9] [3 4 5 6]