首页 > 其他分享 >golang 中 取切片元素 与 切片再生成切片的区别

golang 中 取切片元素 与 切片再生成切片的区别

时间:2022-09-26 18:14:16浏览次数:50  
标签:golang fmt 元素 uint8 切片 Printf 类型

func main() {

    //定义一个切片
    a := []byte{1, 2, 3}
    fmt.Printf("a的类型%T\n", a)  //a的类型[]uint8
    fmt.Printf("a原来的值%v\n", a) //a原来的值[1 2 3]

    
    //这样[0]没有冒号的情况下,是取切片中的某一个元素的值,就是把切片中某个元素的值复制一份赋值给b
    b := a[0]
    b >>= 1 //修改b的值,并不会影响切片a底层对应的数组元素的值
    fmt.Printf("b的类型%T\n", b)  //b的类型uint8
    fmt.Printf("a现在的值%v\n", a) //a现在的值[1 2 3]

    
    
    //利用切片a再次生成一个切片,这个切片里只有一个元素,切片是一个指针不能进行移位操作
    c := a[:1]
    c[0] >>= 1 //在这里对c切片的第一个元素(就是一个byte)进行移位操作,会影响到a
    fmt.Printf("c的类型%T\n", c)   //c的类型[]uint8
    fmt.Printf("c的值%v\n", c)    //c的值[0]
    fmt.Printf("a后来的值:%v\n", a) //a后来的值:[0 2 3]

}

 

 

标签:golang,fmt,元素,uint8,切片,Printf,类型
From: https://www.cnblogs.com/del88/p/16731852.html

相关文章