arr := [...]int{0,1,2,3,4,5,6,7,8} s1 :=arr[2:6] s2 :=arr[3:5] s1=? //2,3,4,5 s2=? // 5,6
1 package main 2 3 import "fmt" 4 5 func main() { 6 arr := []int{0, 1, 2, 3, 4, 5, 6, 7} 7 s1 := arr[2:6] 8 s2 := s1[3:5] 9 fmt.Println(s1) 10 fmt.Printf("%v",s2) 11 fmt.Println(arr) 12 s3 :=append(s2,10) 13 s4 :=append(s3,11) 14 s5 :=append(s4,12) 15 fmt.Println("s3,s4,s5=",s3,s4,s5) 16 fmt.Println("arr=",arr) 17 } 18 #输出的结果 是: 19 [2 3 4 5] 20 [5 6][0 1 2 3 4 5 6 7] 21 s3,s4,s5= [5 6 10] [5 6 10 11] [5 6 10 11 12] 22 arr= [0 1 2 3 4 5 6 10] #what ,最后一个怎么会是10,这个应该是 arr 和 s2还没有重新分配内存地址导致的,这个有点意思,如果有大神看到了,求详解