Golang 中new和make的区别

对于引用类型的变量,我们在使用的时候不仅要声明它,还要为它分配内存空间,否则我们的值就没办法存储

而对于值类型的声明不需要分配内存空间,是因为它们在声明的时候已经默认分配好了内存空间

//会触发panic的两段代码
var a *int
*a = 100
fmt.Println(*a)

var b map[string]int
b["sandy"] = 100
fmt.Println(b)

new和make 都是用来内存分配的。。

make只适用于slice、map、channel的初始化,返回的是这3个引用类型本身。。

new用于类型的内存分配,并且赋值该类型对应的0值,返回的是指向类型的指针。。

new函数具体干了那些事情:

1分配内存      2设置零值         3返回指针(重要)

new不常用

现实编码中我们通常都是采用短语句方式声明或者结构体字面量的方式声明

i : =0
u := user{}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值