为了账号安全,请及时绑定邮箱和手机立即绑定

带导出字段的私有类型

带导出字段的私有类型

Go
眼眸繁星 2021-04-16 14:15:04
在转到教程的第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);


查看完整回答
反对 回复 2021-04-26
?
临摹微笑

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;

}


查看完整回答
反对 回复 2021-04-26
  • 3 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信