Idź do konwencji nazewnictwa dla const

117

Próbuję ustalić, czy istnieje konwencja nazewnictwa nazwisk constw Golang.

Osobiście starałbym się postępować zgodnie ze stylem C i pisać je wielkimi literami, ale nie znalazłem nic na tej stronie http://golang.org/doc/effective_go.html, która wydaje się zawierać listę niektórych konwencji nazewnictwa dla tego języka.

LtWorf
źródło
5
Chciałbym napisać stałe w FOO_BAR_BAZstylu zapewniającym czytelność, ale niestety wpływa to na widoczność stałej i nie jest powszechne. Po prostu musiałem przełknąć swoją dumę i zaakceptować konwencję, nawet jeśli jej nie lubię.
byxor

Odpowiedzi:

131

Standardowa biblioteka używa wielbłąda, więc radzę to również zrobić. Pierwsza litera jest wielka lub mała, w zależności od tego, czy chcesz wyeksportować stałą.

Kilka przykładów:

  • md5.BlockSize
  • os.O_RDONLY jest wyjątkiem, ponieważ został zapożyczony bezpośrednio z POSIX.
  • os.PathSeparator
prawy
źródło
7
Ważne jest również, aby określić, czy chcesz, aby Twój constelement był widoczny dla innych pakietów. Jeśli używasz UpperCamelCaselub ALL_CAPSbędziesz eksportować go poza pakiet. Z tego powodu trzymam się lowerCamelCaseprywatnych zmiennych const i przypominam sobie, że czytałem tę rekomendację od kogoś stosunkowo bliskiego projektowi Go (a może nawet w oficjalnej dokumentacji - nie pamiętam gdzie).
weberc2
81

Komentarze do recenzji kodu Go

Ta strona gromadzi typowe komentarze poczynione podczas recenzji kodu Go, dzięki czemu do pojedynczego szczegółowego wyjaśnienia można odnieść się za pomocą skrótów. To jest lista typowych błędów, a nie przewodnik po stylu.

Możesz zobaczyć to jako dodatek do http://golang.org/doc/effective_go.html .

Mieszane czapki

Zobacz http://golang.org/doc/effective_go.html#mixed-caps . Dotyczy to nawet przypadków, gdy łamie konwencje w innych językach. Na przykład niewyeksportowana stała to maxLength, a nie MaxLength lub MAX_LENGTH.


Skuteczne Go

MixedCaps

Wreszcie, konwencja w Go polega na używaniu MixedCaps lub mixedCaps zamiast znaków podkreślenia do zapisywania nazw wielowyrazowych.


Specyfikacja języka programowania Go

Wyeksportowane identyfikatory

Identyfikator można wyeksportować, aby umożliwić dostęp do niego z innego pakietu. Identyfikator jest eksportowany, jeśli:

  • pierwszy znak nazwy identyfikatora to wielka litera Unicode (klasa Unicode „Lu”); i

  • identyfikator jest zadeklarowany w bloku pakietu lub jest to nazwa pola lub nazwa metody.

Wszystkie inne identyfikatory nie są eksportowane.


Użyj mieszanych czapek.

peterSO
źródło
12

Konkretne przykłady. Zwróć uwagę, że zadeklarowanie typu w stałej (w stosownych przypadkach) może być pomocne dla kompilatora.

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

// Exportable constant
const GlobalConstant string = "Everyone can use this"
Speedy99
źródło