在转到教程的第2天中,有以下练习:
为什么使用具有导出字段的私有类型可能会有用吗?
例如:
package geometry type point struct { X, Y int; name string; }
请注意,这point是小写的,因此不会导出,而字段X和Y是大写的,因此是。在我看来,要访问导出的字段之一,您将必须能够编写类似的内容。
point
p.X
但是为了使之成为可能,p必须具有这样的声明:
var p geomitry.point;
要么
p := new(geomitry.point);
但是,这是不可能的(afaik),因为不会导出point的类型声明。
但是您可以有一个公共构造函数,对吗?
因此,如果您NewGeometryPoint定义了func,那么您可能可以做到(未针对编译器进行测试)
NewGeometryPoint
p := NewGeometryPoint(640,480); fmt.Println("X:",p.X, "Y:",p.Y);