顺晟科技
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来获取特定的指针。
28
1990-12
02
2022-09
29
2021-08
29
2021-08
28
2021-08
28
2021-08