值类型和引用类型

一、值类型和引用类型示例:

        值类型:基本数据类型系列,如:int,float,bool,string,数组和结构体等。

        引用类型:如:指针,slice切片,map,管道chan,interface等。

二、一般程序的内存分布情况: 

三、值类型和引用类型的使用:

        1、值类型:变量直接存储值,内存通常在栈中分配

        2、引用类型:变量存储的是一个地址,这个地址对应的空间才是真正的存储数据,内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成了一个垃圾,由GC来回收。

        3、内存的栈区和堆区:

golang默认都是采用值传递,即拷贝传递,也就是深拷贝;而引用传递则是浅拷贝。只有一些特定的类型,如:slice,map,channel,function,pointer这些天生就是引用类型,是通过引用传递的。

四、值传递和引用传递:

        1、值传递:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数

        2、引用传递:引用传递是指在调用函数时将实际参数的地址传递到函数中,这样在函数中如果对参数进行修改,将会影响到实际参数

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值