Случай первой буквы имени для типа struct в основном пакете - PullRequest
0 голосов
/ 16 октября 2018

Так что он должен быть в нижнем регистре, если он не импортирован.И это странно импортировать что-то из основного пакета.Но это выглядит очень странно для меня, чтобы использовать строчные буквы для первого из struct / class из опыта работы с другими языками.Какой способ идиоматический?

1 Ответ

0 голосов
/ 16 октября 2018

Вопрос не в том, что идиоматично: если идентификатор начинается со строчной буквы, он не экспортируется и поэтому доступен только из декларирующего пакета (напрямую), а если идентификатор начинается с заглавной буквы (Unicode)класс "Lu"), он экспортируется и может быть передан из любого пакета.Подробнее см. Spec: Экспортируемые идентификаторы .Это было дизайнерское решение, которое мне лично нравится (оно сохраняет исходный код чистым, и «Они даже имеют семантический эффект: видимость имени вне пакета определяется тем, является ли его первый символ прописным» «- Effective Go: имена ).

Пакет main является особенным: вы не можете импортировать основной пакет, поэтому не имеет значения, как вы называете свои идентификаторы в main пакет, никто (никакой пакет, кроме main) не будет ссылаться на них / использовать их.

См. Другие важные сообщения в блоге:

Перейти FAQ: Что случилосьс идентификаторами Unicode?

Лаборатории Ardan: экспортированные / не экспортированные идентификаторы на ходу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...