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]) }