Перейдіть до іменування умов для const


117

Я намагаюся визначити, чи існує constугода про іменування імен в Голанг.

Я особисто схильний дотримуватися стилю C і писати їх у верхньому регістрі, але я не знайшов нічого на цій сторінці http://golang.org/doc/effective_go.html, що, схоже, перелічує деякі умови іменування мови.


5
Я хотів би писати константи в FOO_BAR_BAZстилі для читабельності, але, на жаль, це впливає на видимість константи, і це не є загальним явищем. Мені просто довелося проковтнути свою гордість і прийняти умову, навіть якщо мені це не подобається.
byxor

Відповіді:


131

У стандартній бібліотеці використовується футляр з верблюдами, тому я раджу зробити це також. Перша літера є великими або малими літерами, залежно від того, чи потрібно експортувати константу.

Кілька прикладів:

  • md5.BlockSize
  • os.O_RDONLY є винятком, оскільки він був запозичений безпосередньо у POSIX.
  • os.PathSeparator

7
Також важливо визначити, чи хочете ви, щоб ваш constелемент піддавався іншим пакетам. Якщо ви використовуєте UpperCamelCaseабо ALL_CAPSекспортуєте його поза пакетом. З цієї причини я дотримуюсь lowerCamelCaseприватних змінних const, і я пам'ятаю, як читав цю рекомендацію від когось відносно близького до проекту Go (або, можливо, навіть в офіційній документації - я забуваю куди).
weberc2

81

Переглянути коментарі Переглянути код

На цій сторінці зібрані загальні коментарі, зроблені під час огляду коду Go, так що одне детальне пояснення може бути спрямоване на скорочення. Це перелік поширених помилок, а не посібник зі стилем.

Ви можете розглянути це як додаток до http://golang.org/doc/effective_go.html .

Змішані шапки

Див. Http://golang.org/doc/effective_go.html#mixed-caps . Це застосовується навіть тоді, коли він порушує конвенції іншими мовами. Наприклад, константа, що не експортується, - maxLength, не MaxLength або MAX_LENGTH.


Ефективний перехід

Змішані шапки

Нарешті, умовою у програмі Go є використання MixedCaps або змішаних заголовків, а не підкреслення для написання імен з кількома словами.


Специфікація мови програмування Go

Експортовані ідентифікатори

Ідентифікатор може бути експортований для дозволу доступу до нього з іншого пакету. Ідентифікатор експортується, якщо обидва:

  • перший символ імені ідентифікатора - це велика літера Unicode (клас Unicode "Lu"); і

  • ідентифікатор оголошується в блоці пакету або це ім'я поля або ім'я методу.

Усі інші ідентифікатори не експортуються.


Використовуйте змішані ковпачки.


12

Конкретні приклади. Зауважте, що декларування типу в константі (коли це доречно) може бути корисним для компілятора.

// Only visible to the local file
const localFileConstant string = "Constant Value with limited scope"

// Exportable constant
const GlobalConstant string = "Everyone can use this"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.