В день 2 учебника go есть это упражнение:
Почему может быть полезно иметь закрытый тип с экспортированными полями?
Например:
package geometry
type point struct {
X, Y int;
name string;
}
Обратите внимание, что point
является строчным и, следовательно, не экспортируется, тогда как поля X и Y имеют верхний регистр и, следовательно, являются. Мне кажется, что для того, чтобы иметь доступ к одному из экспортируемых полей, вы должны были бы написать что-то вроде.
p.X
Но для того, чтобы это было возможно, p должно было бы иметь такое объявление:
var p geomitry.point;
или
p := new(geomitry.point);
Это, однако, невозможно (afaik), поскольку объявление типа для точки не экспортируется.