Variables and Variable Names
01/11/21 08:36 Filed in: GO
Variables
In GO variables are statically typed and use the syntax:
var name type [= initializer]For example:
var total intOr
var total int = 0.0You can also assign multiple variables on the same line:
var volume, units = 10.2, "ml"Which works as expected:
volume = 10.2 and units is assigned a string value of "ml".You can also omit the type if you initialize the variable when you define it. The compiler will infer the type from the value assigned.
var length = 10.0 // a float64
var width = 3 // an int
var units = "inches" // a string
var isIt = false // boolean
Uninitialized variables get either a 0, 0.0, "", or false as default initializers.
Short Variable Declaration
GO has a simplified syntax for declaring and initializing a variable:
name := initializerFor example:
score := 12And
var score = 12Are identical.
Let's try a simple program.

And, of course, it runs.
One interesting thing is that if you do this instead:

You get this when you run.

vars.go is the name of my file. Line 4, column 1 has a syntax error. So, it seems that length := 20.0 is not a declaration? So, I tried this instead:
And this runs! So, it seems you can only use short declarations inside of function bodies. The
var syntax is a bit more explicit, I guess, but I'm not thrilled by the inconsistency. Variable Names
Variable names start with a lowercase letter and can have any number of letters or numbers, unless the variable is exported and can be used outside the current package. Then, the variable starts with an uppercase letter. In GO camelcase is preferred as are abbreviations for common things (whatever "common" means). Here are some examples:
- stacks - local to the package
- Stacks - exported and accessible outside the current package.
- stacksOfCorn - local to the package
- StacksOfCash - exported
- min - instead of minimum
So, in line 11 above,
Println is an exported function that is accessible outside the fmt package.That's enough for today.