常量表示运行时恒定不可改变的值。使用常量可以代替魔法数字,在定义处修改值后,所有引用的值都会改变。

const x = 1
const y = "hello"
const(
x = 1
y = "hello"
)

可以在函数内定义常量,不使用也不会出错,在不同作用域定义相同的常量也是可以的。

func main() {
const x = 1
println(x)
{
const x = 2
println(x)
}
}

输出

1
2

定义常量的值也可以是表达式的值

func main() {
const (
x = 1+2
y = x + 5
)
println(x,y)

}

输出

3 8

对常量x重新赋值后,会出现编译错误 cannot assign to x


func main() {
const (
x = 1+2
y = x + 5
)
x = 10
println(x,y)
}

在常量组中如不指定类型和初始值,则与上一行非空常量右值相同

func main() {
const (
x = 1
y
z = "hello"
)
println(x,y,z)
}

输出

1 1 hello

可以看出y和x的值都是1。