Lexical elements: Identifiers
January 12, 2023
Identifiers
Identifiers name program entities such as variables and types. An identifier is a sequence of one or more letters and digits. The first character in an identifier must be a letter.
identifier = [letter](https://go.dev/ref/spec#letter) { [letter](https://go.dev/ref/spec#letter) | [unicode_digit](https://go.dev/ref/spec#unicode_digit) } .
So in other words, every identifier must begin with a letter, followed by zero or more letters and/or digits. Pretty simple.
The spec offers a few examples
a _x9 ThisVariableIsExported αβ
That second one looks a bit suspicious. _x9
? We were just told that the first character of an identifier has to be a letter!
Ah, but remember last week (if you were reading then), we read in the section on Letters and digits that:
The underscore character _ (U+005F) is considered a lowercase letter.
So now the reason for that seemingly odd exception should make more sense.
Some identifiers are predeclared.
And finally the section ends by telling us that some identifiers are pre-declared. We’ll get to those in due time, but as a sneak peak, this refers to names of basic data types, constants, nil
, and a few built-in function names.
Quotes from The Go Programming Language Specification, Version of June 29, 2022