常量

常量表达式的值在编译期计算,而不是在运行期。每种常量的潜在类型都是基础类型:boolean、string或数字。

  1. const x, y int = 1, 2 // 多常量初始化
  2. const s = "Hello, KeKe!" // 类型推断
  3. const ( // 常量组
  4. a, b
  5. c
  6. = 10, 20
  7. bool = false
  8. )
  9. func main() {
  10. const m = "20"// 未使用用局部常量不会引发编译错误。
  11. }

枚举:关键字 iota 定义常量组中从 0 开始按行行计数的自自增枚举值。

iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。使用iota能简化定义,在定义枚举时很有用。

  1. const (
  2. Sunday = iota // 0
  3. Monday // 1,通常省略后续行行表达式。
  4. Tuesday // 2
  5. Wednesday // 3
  6. Thursday // 4
  7. Friday // 5
  8. Saturday // 6
  9. )

在同一常量组中,可以提供多个 iota,它们各自增⻓。

  1. const (
  2. A, B = iota, iota << 10 // 0, 0 << 10
  3. C, D // 1, 1 << 10
  4. )

容量大小的单位的自增:

  1. const (
  2. B = 1 << (10*iota)
  3. KB
  4. MB
  5. GB
  6. TB
  7. PB
  8. )

bit就是位,也叫比特位,是计算机表示数据最小的单位,byte是字节。1B(byte,字节,1byte就是1B)= 8 bit(位就是bit也是b),一个字符=2字节(2byte)。