Vai alle convenzioni di denominazione per const


117

Sto cercando di determinare se esiste una convenzione di denominazione per i nomi di constin Golang.

Personalmente tenderei a seguire lo stile C ea scriverli in maiuscolo, ma non ho trovato nulla in questa pagina http://golang.org/doc/effective_go.html che sembra elencare alcune convenzioni di denominazione per la lingua.


5
Mi piacerebbe scrivere costanti nello FOO_BAR_BAZstile per la leggibilità, ma sfortunatamente ciò influisce sulla visibilità della costante e non è comune. Ho solo dovuto ingoiare il mio orgoglio e accettare la convenzione anche se non mi piace.
byxor

Risposte:


131

La libreria standard usa camel-case, quindi ti consiglio di farlo anche tu. La prima lettera è maiuscola o minuscola a seconda che si desideri esportare la costante.

Alcuni esempi:

  • md5.BlockSize
  • os.O_RDONLY è un'eccezione perché è stato preso in prestito direttamente da POSIX.
  • os.PathSeparator

7
È anche importante determinare se vuoi che il tuo constelemento sia esposto ad altri pacchetti. Se usi UpperCamelCaseo ALL_CAPSlo esporterai al di fuori del tuo pacchetto. Per questo motivo, mi attengo alle lowerCamelCasevariabili const private e ricordo di aver letto questa raccomandazione da qualcuno relativamente vicino al progetto Go (o forse anche nella documentazione ufficiale - non ricordo dove).
weberc2

81

Commenti Go Code Review

Questa pagina raccoglie i commenti comuni fatti durante le revisioni del codice Go, in modo che una singola spiegazione dettagliata possa essere indicata per abbreviazioni. Questa è una lunga lista di errori comuni, non una guida di stile.

Puoi visualizzarlo come supplemento a http://golang.org/doc/effective_go.html .

Cappellini misti

Vedi http://golang.org/doc/effective_go.html#mixed-caps . Questo vale anche quando infrange le convenzioni in altre lingue. Ad esempio, una costante non esportata è maxLength, non MaxLength o MAX_LENGTH.


Go efficace

MixedCaps

Infine, la convenzione in Go consiste nell'usare MixedCaps o mixedCaps invece di trattini bassi per scrivere nomi composti da più parole.


La specifica del linguaggio di programmazione Go

Identificatori esportati

Un identificatore può essere esportato per consentirne l'accesso da un altro pacchetto. Un identificatore viene esportato se entrambi:

  • il primo carattere del nome dell'identificatore è una lettera maiuscola Unicode (classe Unicode "Lu"); e

  • l'identificatore è dichiarato nel blocco del pacchetto o è un nome di campo o un nome di metodo.

Tutti gli altri identificatori non vengono esportati.


Usa maiuscole miste.


12

Esempi specifici. Si noti che la dichiarazione del tipo nella costante (se pertinente) può essere utile per il compilatore.

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

// Exportable constant
const GlobalConstant string = "Everyone can use this"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.