golang slice 经典例题

 

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还没有重新分配内存地址导致的,这个有点意思,如果有大神看到了,求详解

猜你喜欢

转载自www.cnblogs.com/jackluo/p/10700155.html