Go中的值类型和引用类型

值类型

1.变量直接存储值,内存通常在栈中分配
2.包含基本数据类型:int,float,bool,string以及数组和struct
3.默认值:
int,float:0
bool:false
string:""
数组:[]
strut:strut{
}
内存占用:声明即占有内存

引用类型

1.变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配。通过GC回收。

2.有指针,slice,map,chan,func等

3.声明(var)时的默认值都是nil,占很小的内存,不同类型的nil值占用的内存大小可能是不一样的,nil的大小一致与同类型中的非nil类型的值的大小一样大。不可直接操作

4.要进行操作需要使用make()初始化,初始化后不再为nil。操作之后不进行垃圾回收。赋值为nil时才回收

golang参数传递方式

参数传递有两种方式:
1.值传递
2.引用传递

golang采用的是值传递

针对值类型是直接复制一份传递,不影响原参数值。对内存占用大的数组和结构体,直接传递对占用比较多的资源,建议采用指针传递

针对引用类型是复制了一份指针进行传递,两个指针指向同一片内存空间,所以会修改原有参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值