Ir a las convenciones de nomenclatura para const

117

Estoy tratando de determinar si existe una convención de nomenclatura para los nombres de consten Golang.

Personalmente, tendería a seguir el estilo C y escribirlos en mayúsculas, pero no he encontrado nada en esta página http://golang.org/doc/effective_go.html que parezca enumerar algunas convenciones de nomenclatura para el idioma.

LtWorf
fuente
5
Me encantaría escribir constantes en el FOO_BAR_BAZestilo para facilitar la lectura, pero desafortunadamente eso afecta la visibilidad de la constante y no es común. Solo tuve que tragarme mi orgullo y aceptar la convención incluso si no me gusta.
byxor

Respuestas:

131

La biblioteca estándar usa camel-case, así que le aconsejo que lo haga también. La primera letra es mayúscula o minúscula dependiendo de si desea exportar la constante.

Algunos ejemplos:

  • md5.BlockSize
  • os.O_RDONLY es una excepción porque se tomó prestado directamente de POSIX.
  • os.PathSeparator
pliegue derecho
fuente
7
También es importante determinar si desea que su constelemento esté expuesto a otros paquetes. Si lo usa UpperCamelCaseo ALL_CAPSlo exportará fuera de su paquete. Por esta razón, me atengo a lowerCamelCaselas variables privadas const, y recuerdo haber leído esta recomendación de alguien relativamente cercano al proyecto Go (o tal vez incluso en la documentación oficial, no recuerdo dónde).
weberc2
81

Comentarios de revisión de código de Go

Esta página recopila comentarios comunes realizados durante las revisiones del código Go, de modo que se pueda hacer referencia a una única explicación detallada de forma abreviada. Esta es una larga lista de errores comunes, no una guía de estilo.

Puede ver esto como un suplemento de http://golang.org/doc/effective_go.html .

Tapas mixtas

Consulte http://golang.org/doc/effective_go.html#mixed-caps . Esto se aplica incluso cuando rompe las convenciones en otros idiomas. Por ejemplo, una constante no exportada es maxLength y no MaxLength o MAX_LENGTH.


Go eficaz

MixedCaps

Finalmente, la convención en Go es usar MixedCaps o mixedCaps en lugar de guiones bajos para escribir nombres de varias palabras.


La especificación del lenguaje de programación Go

Identificadores exportados

Se puede exportar un identificador para permitir el acceso a él desde otro paquete. Se exporta un identificador si ambos:

  • el primer carácter del nombre del identificador es una letra mayúscula Unicode (clase Unicode "Lu"); y

  • el identificador se declara en el bloque del paquete o es un nombre de campo o de método.

Todos los demás identificadores no se exportan.


Utilice tapas mixtas.

peterSO
fuente
12

Ejemplos específicos. Tenga en cuenta que declarar el tipo en la constante (cuando sea relevante) puede ser útil para el compilador.

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

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