1. 在go语言中,常量的定义使用const关键字,代表只读取的意思
2. 注意事项:
(1)const定义的常量:在编译的阶段,其值已经确定;无法修改。在程序运行的阶段,只能读取,不能修改其值。
(2)const定义的基本格式: const 常量名 [ 类型] = 常量表达式
注意:为什么是常量表达式???
编译的阶段:不会产生变量;程序运行的阶段: 会产生变量。const修饰的常量在编译阶段,其值就已经确定了;所以等号右边只能是常量表达式。
(3)常量表达式中涉及的函数,必须是内置函数; const lens = len("lipeu");
(4)定义单个常量: const a = 值;
(5)定义多个常量:
a、const a,b,c,dd,e = 1,2,3,4,"sring";
b、const (a=1 b="string")
c、const (a =1 b = a+1)
(6)枚举和const常量组:
a、 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式(只能在常量组中)
const(
a = 12
b //结果b为12
)
c、iota是常量个数的计数器,从0开始,组中每定义1个常量,iota 就自动递增1 (只能用于常量组中)
iota代表的是一个常量组中常量的个数;默认是0,常量组中每定义一个常量,iota就自动增加 1.
const(
one = iota // 1
two // 2
three // 3
)
const(
a =“string" //此时常量的个数是 : iota = 0
b = iota // 此时常量的个数是 : iota = 1 ,b也为2
c // c将使用b的常量表达式iota, 此时iota 为2
)
d、通过初始化规则与iota可以达到枚举的效果e、每遇到一个const关键字,iota就会重置为0
简单的说: 每个常量组都有自己的iota常量计数器,彼此之间互不干扰;默认值全部是0;
const(b =12 ,d= "string") iota 为2
const (a =12 ,s=34,h=67) iota 为3