Loading

Go语言精进之路读书笔记第10条——使用iota实现枚举常量

Go的const语法提供了隐式重复前一个非空表达式的机制

const (
    Apple, Banan = 11, 22
    Straberry, Grape
    Pear, Watermelon
)
// 等价于
const (
    Apple, Banan = 11, 22
    Straberry, Grape = 11, 22
    Pear, Watermelon = 11, 22
)

iota是Go语言的一个预定义标识符,表示const声明块(包括单行声明)中每个常量所处位置在块中的偏移量(从零开始)

  • iota自身也是一个无类型常量,可以像无类型常量那样自动参与不同类型的求值过程,而无须对其进行显式类型转换操作
  • 位于同一行的iota即便出现多次,其值也是一样的
  • 使用"_"略过iota=0,或实现非连续枚举值
  • 定义浮点型的枚举常量
const (
    _ = iota // 0
    Pin1
    Pin2
    Pin3
    _
    Pin5 // 5
)

const (
    PI = 3.1415926                  // 派
    PI_2 = 3.1415926 / (2 * iota)   // 派/2
    PI_4                            // 派/4
)
posted @ 2024-02-01 20:49  brynchen  阅读(6)  评论(0编辑  收藏  举报