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