const 定义常量

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

w3cjava