There are a number of terms that get thrown around, often semi-interchangeably by the less initiated (such as myself). “Declaration”, “definition”, “statement”, … and today’s topic “expressions”, just to name a few.
But, at least within the context of the Go spec, most such terms have very specific meanings.
Expressions
An expression specifies the computation of a value by applying operators and functions to operands.
So: type foo int and var foo int are not an expressions. There are no computations being specified.
In contrast var foo = 1 + 2 includes an expression (1 + 2 specifically).
For the next while, we’ll be digging into how expressions work in Go.
Quotes from The Go Programming Language Specification Version of August 2, 2023