函数参数的传递方式

package main

func main(){
/*
基本介绍
我们在讲解函数注意事项和使用细节时,已经讲过值类型和引用类型了,这里我们在系统总结一下,因为这是重难点,值类型参数默认就是值传递,而引用类型参数默认就是引用传递。
两种传递方式
1)值传递
2)引用传递
其实,不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递的是地址的拷贝,一般来说,地址拷贝效率高,因为数据量小,而值拷贝决定拷贝的数据大小,数据越大,效率越低。

值类型和引用类型
1)值类型:基本数据类型int系列,float系列,bool,string、数组和结构体struct
2)引用类型;指针、slice切片、map、管道chan、interface等都是引用类型。

值传递和引用传递使用特点(前面讲过了,再稳固一下);
1)值类型默认是值传递:变量直接存储值,内存通常在栈中分配【案例:画出示意图】
2)引用类型默认是引用传递;变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当没有任何变量引用这个地址时,该地支对应的数据空间就成为一个垃圾,由Gc来会出【案例;并画出示意图】
3)如果希望函数内的变量能修改函数外的变量,可以穿入变量的地址&,函数内以指针的方式操作变量。从效果上看类似引用。这个案例再前面详解函数使用注意事项的。

 */

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值