go学习笔记reslice

定义

基于已有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]
}
坚持原创技术分享,您的支持将鼓励我继续创作!