Подтвердить что ты не робот

Имена именования для констант

Я пытаюсь определить, существует ли соглашение об именах для имен const в Голанге.

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

4b9b3361

Ответ 1

В стандартной библиотеке используется верблюжий футляр, поэтому я советую вам это сделать. Первая буква - в верхнем или нижнем регистре, в зависимости от того, хотите ли вы экспортировать константу.

Несколько примеров:

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

Ответ 2

Комментарии к обзору Go Code

На этой странице собраны общие комментарии, сделанные во время обзоров кода Go, поэтому что одно подробное объяснение можно отнести к сокращению. Это список обычных ошибок, а не руководство по стилю.

Вы можете просмотреть это как дополнение к http://golang.org/doc/effective_go.html.

Смешанные шапки

См. http://golang.org/doc/effective_go.html#mixed-caps. Это относится даже когда он нарушает соглашения на других языках. Например, Необязательная константа - maxLength, а не MaxLength или MAX_LENGTH.


Эффективный путь

MixedCaps

Наконец, соглашение в Go состоит в том, чтобы использовать MixedCaps или mixedCaps чем подчеркивания для написания имен многослов.


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

Экспортированные идентификаторы

Идентификатор может быть экспортирован, чтобы разрешить доступ к нему из другого пакет. Идентификатор экспортируется, если оба:

  • первый символ имени идентификатора - это буква верхнего регистра Юникода (класс Юникода "Лу" ); и

  • идентификатор объявляется в блоке пакета или это имя поля или имя метода.

Все остальные идентификаторы не экспортируются.


Используйте смешанные колпачки.

Ответ 3

Конкретные примеры. Обратите внимание, что объявление типа в константе (когда это уместно) может быть полезным для компилятора.

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

// Exportable constant
const GlobalConstant string = "Everyone can use this"