常量
声明形式
- const: 编译期确定的不可修改值;
- 常量类型: 布尔、数值、字符串等基础常量值;
- 包级常量: 常用于固定配置值和枚举值;
const Pi = 3.14 // 常量值在编译期确定
const (
StatusOK = 200
Method = "GET"
)
无类型常量
- 根据上下文自动转换类型;
const n = 10 // n 为 untyped constant
var i int = n // n 根据上下文转换为 int
var f float64 = n // n 根据上下文转换为 float64
iota
iota: const block 内的递增计数器;- 初始值: 每个 const block 从 0 开始;
- 递增时机: 每一行常量声明递增一次;
const (
Sunday = iota // 0
Monday // 1; 省略表达式时重复上一行非空表达式
Tuesday // 2
)
bit flag
- bit flag: 使用二进制位组合多个布尔状态;
- 位移表达式:
1 << iota常用于生成独立标志位;
const (
Read = 1 << iota // 1; 二进制 001
Write // 2; 二进制 010
Exec // 4; 二进制 100
)