go语言中变量、常量是不同的
常量
编译期就已知且不可改变的值
字面常量
无具体类型
-12 整型常量 3.14 浮点常量 "str" 字符串常量
true 布尔型常量 3+1i 复数常量
定义
const 常量名 类型 = 值
1、常量声明时,必须初始化,且不能再修改值
const Pi float64 = 3.14159265358797323846
2、类型名可有可无
有类型:常量有类型
无类型:常量无具体类型,同字面常量
3、多个常量的情况类似变量
常量的赋值在编译期
const i = 1 << 3 对
const i = foo() 错
预定义常量
true false
iota
初始值0,每用一次后,值+1
const将其修改为0
可被编译器修改的常量
如果两个常量的赋值语句相同,后面的可以省略赋值表达式
const c0 = iota
const ( const (
c0 = iota ==> c0 = iota
c1 = iota c1
) )
枚举
const(
Sunday = iota
Monday
...
)