定义
基于已有slice创建新slice对象,以便在cap允许范围内调整属性
package main
import "fmt"
func main() {
s := []int{0, 11, 10, 31, 4, 5, 6, 7, 8, 9}
s1 := s[2:5] //[10 31 4]
s2 := s1[2:6:7] //[4 5 6 7] 注意要在新的s1上进行截取
//s3 := s2[3:6] //报错
fmt.Println(s1, s2)
}
新对象依旧指向原底层数组
package main
import "fmt"
func main() {
s := []int{0, 11, 10, 31, 4, 5, 6, 7, 8, 9}
s1 := s[2:5] //[10 31 4]
fmt.Println(s1)
s1[2] = 100
s2 := s1[2:6]
fmt.Println(s2) //[100 5 6 7]
s2[3] = 200
fmt.Println(s) //[0 11 10 31 100 5 6 200 8 9]
}