跳到主要内容

常量

声明形式

  • 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
)