go 实例化的疑问

//取地址实例化是最广泛的一种结构体实例化方式go结构体实例化
(1)基本实例化typePointstruct{
Xint,
Yint
}varpPointp.X=1p.Y=2
(2)指针类型结构体ins:=new(T)
(3)取结构体地址实例化ins:=&T{}
go实例化结构体有多种方式,不同方式有什么不一样?什么情况下该用哪种呢?
呼如林
浏览 409回答 2
2回答

慕妹3242003

这个本质上是什么情况下使用指针的问题每个人出发点都不一样,我一般只有struct类型会使用指针,其他类型(基本类型,map,slice)使用值传递

慕森王

第1中方式得到的是值对象第2和3是等价的,都是指针对象至于应该使用哪种方式要看具体场景如果需要修改其中的值,就要使用指针接收者;比如func(p*Point)SetX(iint){p.X=i}p:=new(Point)//或者&Point{3,4}p.SetX(1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript