package main
import "fmt"
func updateSlice(s []int){
s[0] = 100
}
func main() {
arr := [...]int{0,1,2,3,4,5,6,7}
fmt.Println("arr[2:6]",arr[2:6])
fmt.Println("arr[:6]",arr[:6])
fmt.Println("arr[2:]",arr[2:])
fmt.Println("arr[:]",arr[:])
fmt.Println("arr[0:6]",arr[0:6])
/*
arr[2:6] [2 3 4 5]
arr[:6] [0 1 2 3 4 5]
arr[2:] [2 3 4 5 6 7]
arr[:] [0 1 2 3 4 5 6 7]
arr[0:6] [0 1 2 3 4 5]
*/
s1 := arr[2:]
fmt.Println("s1 =",s1)
s2 := arr[:]
fmt.Println("s2 =",s2)
/*
s1 = [2 3 4 5 6 7]
s2 = [0 1 2 3 4 5 6 7]
*/
fmt.Println("after:updateSlice(S1)")
updateSlice(s1)
fmt.Println(s1)
fmt.Println(arr)
/*
after:updateSlice(S1)
[100 3 4 5 6 7]
[0 1 100 3 4 5 6 7]
*/
fmt.Println("after:updateSlice(S2)")
updateSlice(s2)
fmt.Println(s2)
fmt.Println(arr)
/*
after:updateSlice(S2)
[100 1 100 3 4 5 6 7]
[100 1 100 3 4 5 6 7]
*/
// reslice
fmt.Println("reslice")
fmt.Println(s2)
s2 = s2[:5]
fmt.Println(s2)
s2 = s2[2:]
fmt.Println(s2)
fmt.Println(arr)
/*
after:updateSlice(S2)
[100 1 100 3 4 5 6 7]
[100 1 100 3 4 5 6 7]
reslice
[100 1 100 3 4 5 6 7]
[100 1 100 3 4]
[100 3 4]
*/
//slice 的扩展
}