Golang conventions: Difference between revisions
From wikinotes
Line 22: | Line 22: | ||
var URL string = "https://example.com" // acronyms are uppercase | var URL string = "https://example.com" // acronyms are uppercase | ||
var catName string = "foo" // regular vars are camelCase | var catName string = "foo" // regular vars are camelCase | ||
var DogName string = "foo" // constants in pascal-case are exported | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Casing --> | </blockquote><!-- Casing --> |
Revision as of 00:01, 6 June 2022
Naming
Brevity
Go prefers short names, with good doc comments for both functions and packages.
Imported package names are typed every time a symbol is used.Go also prefers you drop the
get
prefix of getters.Casing
Functions
func DoThing() { ... } // exported functions are PascalCase func doThing() { ... } // regular functions are camelCaseVariables
var URL string = "https://example.com" // acronyms are uppercase var catName string = "foo" // regular vars are camelCase var DogName string = "foo" // constants in pascal-case are exportedInterfaces
// interfaces should end in 'er' (or similar) Writer, Reader, Formatter, Notifier, Flusher, Stringer // implementations of interfaces should drop the 'er' Write, Read, Format, Notify, Flush, String
Spacing
TODO
Syntax
Semicolons
Go uses semicolons as line-endings, but prefers that the semicolon is implied automatically.