您的位置 首页 golang

go 深浅拷贝

package mainimport "fmt"func main() {    /*        深浅拷贝:            深拷贝:拷贝数据的副本,对原始数据没有影响               值类型的数据,默认都是深拷贝               int , float,string,bool,array,struct            浅拷贝:拷贝的是数据的地址,                  引用类型的数据,默认都是浅拷贝                    slice,map,function    */    // slice,map 不需要手动添加&去取地址。    map1 := make(map[int]string)    fmt.Println(map1)    map1[1] = "aaa"    map1[2] = "bbb"    fmt.Println(map1)    fmt.Printf("%p\n", map1)    //1.深拷贝    a := 10    b := a //深拷    fmt.Println(a, b)    b = 20    fmt.Println(a, b)    //2.数组的深拷    arr1 := [4]int{1, 2, 3, 4}    arr2 := arr1    fmt.Println(arr1, arr2)    arr2[0] = 100    fmt.Println(arr1, arr2)    //数组的浅拷贝    arr3 := &arr1    //(*arr3)[0] = 100 // 理论写法    arr3[0] = 100 //go优化写法,语法糖    fmt.Println(arr1, arr3)    //3 引用类型默认就是浅拷贝}

文章来源:智云一二三科技

文章标题:go 深浅拷贝

文章地址:https://www.zhihuclub.com/5407.shtml

关于作者: 智云科技

热门文章

网站地图