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


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

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

3 72

3 ответа:

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

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

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

Перейти Код Обзор Комментариев

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

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

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

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


Эффективный Go

MixedCaps

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


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

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

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

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

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

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


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

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

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

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