在转到教程的第2天中,有以下练习:为什么使用带有导出字段的私有类型可能会有用吗?例如:package geometrytype point struct { X, Y int; name string;}请注意,这point是小写的,因此不会导出,而字段X和Y是大写的,因此是。在我看来,要访问导出的字段之一,您将必须能够编写类似的内容。p.X但是为了使之成为可能,p必须具有这样的声明:var p geomitry.point;或者p := new(geomitry.point);但是,这是不可能的(afaik),因为不会导出point的类型声明。
3 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
但是您可以有一个公共构造函数,对吗?
因此,如果您NewGeometryPoint定义了一个func,那么您也许可以做到(未针对编译器进行过测试)
p := NewGeometryPoint(640,480);
fmt.Println("X:",p.X, "Y:",p.Y);
临摹微笑
TA贡献1982条经验 获得超2个赞
抽象的基本类型?
package geometry
type point struct {
X, Y int;
}
type Point struct {
point;
name string;
}
type Rect struct {
P1, P2 point;
name string;
}
- 3 回答
- 0 关注
- 226 浏览
添加回答
举报
0/150
提交
取消