golang 核心知识点

Go语言中所有的传参都是值传递(传值),都是一个副本,一个拷贝。且传参和赋值(=)的操作本质是一样的。

拷贝的内容分为 非引用类型 和 引用类型 两种类型

非引用类型:int、string、struct、array 这样就不能修改原内容数据。

引用类型:指针、map、slice、chan ,这样就可以修改原内容数据。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/inthat/article/details/120271162

 

golang基础

https://juejin.cn/post/7097436547553132557

 

func main(){
    ctx := context.Background()
    var temp []entity.TbDepartment
    glog.Debugf(ctx, "temp = %p", &temp)
    test(ctx, &temp)
    glog.Debugf(ctx, "&temp[0] = %p", &temp[0])
    glog.Debug(ctx, temp)
    return
}

func test(ctx context.Context, args *[]entity.TbDepartment) {
    glog.Debugf(ctx, "args = %p", args)
    *args = make([]entity.TbDepartment, 1)
    *args = append(*args, entity.TbDepartment{
        FcompanyId: 1,
    })
    glog.Debugf(ctx, "&(*args)[0] = %p", &(*args)[0])
}

 

posted @ 2024-11-02 23:02  lobtao  阅读(0)  评论(0编辑  收藏  举报