为了账号安全,请及时绑定邮箱和手机立即绑定

go 实例化的疑问

go 实例化的疑问

呼如林 2019-04-27 22:14:41
//取地址实例化是最广泛的一种结构体实例化方式go结构体实例化(1)基本实例化typePointstruct{Xint,Yint}varpPointp.X=1p.Y=2(2)指针类型结构体ins:=new(T)(3)取结构体地址实例化ins:=&T{}go实例化结构体有多种方式,不同方式有什么不一样?什么情况下该用哪种呢?
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

这个本质上是什么情况下使用指针的问题每个人出发点都不一样,我一般只有struct类型会使用指针,其他类型(基本类型,map,slice)使用值传递
                            
查看完整回答
反对 回复 2019-04-27
?
慕森王

TA贡献1777条经验 获得超3个赞

第1中方式得到的是值对象第2和3是等价的,都是指针对象至于应该使用哪种方式要看具体场景如果需要修改其中的值,就要使用指针接收者;比如
func(p*Point)SetX(iint){
p.X=i
}
p:=new(Point)//或者&Point{3,4}
p.SetX(1)
                            
查看完整回答
反对 回复 2019-04-27
  • 2 回答
  • 0 关注
  • 397 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号