What we take for granted in other languages and almost expect it to work in go, won\'t work - its almost so natural to do this, so why isn\'t the compiler happy? Just feeling li
Just to help clarify, an expression has a =
, :=
or +=
in them. A statement (such as ++
and —
) does not. See https://stackoverflow.com/a/1720029/12817546.
package main
import "fmt"
var x int
func f(x int) {
x = x + 1 //expression
x++ //statement
fmt.Println(x) //2
}
func main() {
f(x) //expression statement
}
An "expression" specifies the computation of a value by applying operators and functions to operands. See https://golang.org/ref/spec#Expressions.
A "statement" controls execution. See https://golang.org/ref/spec#Statements.
An "expression statement" is a function and method call or receive operation that appears in a statement. See https://golang.org/ref/spec#Expression_statements.