常量
常量是一个简单的标识符,在程序运行时,不会被修改的值,也不可以被修改 常量中的数据类型只可以是 布尔型、数字型 和 字符串型
常量的定义
const Name [type] = value
Const v_name_1, v_name_2 = v_value_1, v_value_2
常量的值可以用内置函数计算表达式的值,函数必须为内置函数
Const (
A = "abs"
B = len(A)
c = unsafe.Sizeof(A)
)
iota
iota 特殊常量,可以认为是一个可以被编译器修改的常量 iota 在 const 关键字出现时将被重置为 0 (const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块的行索引)
Const (
a = iota
b = iota
c = iota
)
// 或者
Const (
a = iota
b
c
)
ps:
第一个 iota 值为 0,在使用关键字 const 时被赋值为 0;在常量 a 被定义时,a 获取到的 iota 为 0, 同时 iota 被赋值为 1
第二个 iota 值为 1,
当常量没有赋值时,使用上一个常量的值(上一个的赋值表达式),且 iota 自增 +1;
当常量为独立赋值 且 不是 iota 时,使用独立赋值,且 iota 自增 +1;
当常量赋值为 iota 时,常量获取 iota 的计数值,此时 b 获取到的 iota 值 为 1,同时 iota 被赋值为 2
第三个 值为 2,同时 iota 被赋值为 3
Const (
A = iota // 0
B // 1
c // 2
D = "ha" // 独立值,"ha",iota += 1
E // "ha",iota += 1
F = 100 // 独立值,100,iota += 1
g // 100,iota += 1
h // 100,iota += 1
I = iota // 重新使用iota赋值,8,iota += 1
j // 9
)
Const (
A = 1 << iota // 独立值,1 << 0,值为 1,iota += 1
b = 3 << iota // 独立值,3 << 1,值为 6,iota += 1
c // 使用上一个值的赋值表达式,3 << 2,值为 12,iota += 1
d // 使用上一个值的赋值表达式,3 << 3,值为 24,iota += 1
)