Go naming conventions for const

GoConstantsNaming Conventions

Go Problem Overview


I'm trying to determine whether there is a naming convention for the names of const in Golang.

I personally would tend to follow the C style and write them in upper case, but I haven't found anything on this page http://golang.org/doc/effective_go.html which seems to list some naming conventions for the language.

Go Solutions


Solution 1 - Go

The standard library uses camel-case, so I advise you do that as well. The first letter is uppercase or lowercase depending on whether you want to export the constant.

A few examples:

  • md5.BlockSize
  • os.O_RDONLY is an exception because it was borrowed directly from POSIX.
  • os.PathSeparator

Solution 2 - Go

> Go Code Review Comments > > This page collects common comments made during reviews of Go code, so > that a single detailed explanation can be referred to by shorthands. > This is a laundry list of common mistakes, not a style guide. > > You can view this as a supplement to > http://golang.org/doc/effective_go.html. > > Mixed Caps > > See http://golang.org/doc/effective_go.html#mixed-caps. This applies > even when it breaks conventions in other languages. For example an > unexported constant is maxLength not MaxLength or MAX_LENGTH. >


> Effective Go > > MixedCaps > > Finally, the convention in Go is to use MixedCaps or mixedCaps rather > than underscores to write multiword names. >


> The Go Programming Language Specification > > Exported identifiers > > An identifier may be exported to permit access to it from another > package. An identifier is exported if both: > > * the first character of the identifier's name is a Unicode upper case letter (Unicode class "Lu"); and > > * the identifier is declared in the package block or it is a field name or method name. > > All other identifiers are not exported.


Use mixed caps.

Solution 3 - Go

Specific examples. Note that declaring the type in the constant (when relevant) can be helpful to the compiler.

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

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLtWorfView Question on Stackoverflow
Solution 1 - Gouser1804599View Answer on Stackoverflow
Solution 2 - GopeterSOView Answer on Stackoverflow
Solution 3 - GoSpeedy99View Answer on Stackoverflow