18910140161

golang中结构体的初始化方法

顺晟科技

2021-06-16 10:59:56

494

目录

1.自定义结构

顶点类型结构{

x,Y浮动64

}

2.初始化方法-指针:

rect1 :=新(顶点)

rect2 :=Vertex {}

rect3 :=顶点{1,2}

rect4 :=Vertex {X:100,Y:200}

注意这些变量:都是指向Rect结构的指针(指针变量),因为使用了new()函数和运算符。

3.初始化方法类型的实例

a :=Rect{}

b :=Rect{3,4}

c :=Rect{X=5,Y=6}

这意味着这是一个Rect{}类型。他们不一样。

4.差异

以下示例显示了差异:

包装总管

导入“fmt”

顶点类型结构{

x,Y浮动64

}

func main() {

rect1 :=新(顶点)

rect2 :=顶点{1,2}

fmt。Printf('%v %T %v \n ',rect1,rect1,*rect1)

fmt。Printf('%v %T %v \n ',rect2,rect2,*rect2)

rect3 :=Vertex{X: 5,Y: 6}

fmt。Printf('%v %T\n ',rect3,rect3)

}

//输出:

/*

{0 0} *main。顶点{0 0}

{1 2} *main。顶点{1 2}

{5 6}主。顶点

*/

从结果中可以明显看出两者的区别。

用new分配内存的新的内置函数与其他语言中同名的函数本质上是一样的:new(T)分配用零值填充的T类型的内存空间,并返回它的地址,一个*T类型的值.用围棋术语来说,它返回一个指向新赋值的t型零值的指针。记住这一点非常重要。这意味着用户可以使用新的创建数据结构的实例,并且可以直接工作。

请记住,make仅适用于贴图、切片和通道,不返回指针。您应该使用new来获取特定的指针。

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航