- A+
所属分类:go语言
06 const 定义常量
1 基本
常量在定义的时候必须赋值
声明之后,在整个程序运行期间它们的值都不能再发生变化
const pi = 3.1415
const e = 2.7182
=
2 批量定义赋值
const (
pi = 3.1415
e = 2.7182
)
//
// 同时声明多个常量时,如果省略了值,则表示和上面一行的值相同
const (
n1 = 100
n2
n3
)
// 表示常量n1、n2、n3的值都是100
=
3 常量计数器 **iota**
iota
在const关键字出现时将被重置为0- const中每新增一行常量声明将使
iota
计数一次 (可理解为const 语句块中的行索引)
3.1 行号(从零开始)
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
=
3.2 使用 _ 跳过某些值(占位符)
const (
n1 = iota //0
n2 //1
_
n4 //3
)
3.3 插队
从n3开始,括号内后续的声明仍然实现递增效果
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
// 另一条 const 重新开始计数、相互独立
const n5 = iota //0
=
3.4 定义数量级
// << 表示左移
// 1<<10 表示将数字【1】的二进制表示形式向左移【10】位
// 下面的 iota 用来表示多少个10位(左移一个10位就是千倍)
const (
_ = iota
KB = 1 << (10 * iota) //左移10位即为 1000
MB = 1 << (10 * iota) //左移20位即为 1000,000
GB = 1 << (10 * iota)
TB = 1 << (10 * iota)
PB = 1 << (10 * iota)
)
=
3.5 一行内出现多次
含义不变:第一行的 iota 始终为 0
const (
a, b = iota + 1, iota + 2 //1,2
c, d //2,3
e, f //3,4
)