Go基础定义枚举
Posted justry_deng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go基础定义枚举相关的知识,希望对你有一定的参考价值。
定义枚举
定义枚举
- 定义枚举使用
const
关键字 +()
- 当前面某个变量使用了
iota
后,该变量后面的变量都回给默认加上一个iota
,不论你是否显式的写了出来iota
的取值从0开始- iota的累加机制是在
=
作用于结束后累加的(即:可理解为行级累加;同一行内的iota
的值是一样的)
- 示例一:
import "fmt"
const (
spring = "春"
summer = "夏"
autumn = "秋"
winter = "冬"
)
func main() {
fmt.Println("spring = ", spring) // 输出:spring = 春
fmt.Println("summer = ", summer) // 输出:summer = 夏
fmt.Println("autumn = ", autumn) // 输出:autumn = 秋
fmt.Println("winter = ", winter) // 输出:winter = 冬
const (
a = "春"
b = "夏"
c = "秋"
d = "冬"
)
fmt.Println("a = ", a) // 输出:a = 春
fmt.Println("b = ", b) // 输出:b = 夏
fmt.Println("c = ", c) // 输出:c = 秋
fmt.Println("d = ", d) // 输出:d = 冬
}
- 示例二:使用
iota
关键字,自动(行级)累加
import "fmt"
const (
spring = iota
summer
autumn
winter
)
func main() {
fmt.Println("spring = ", spring) // 输出:spring = 0
fmt.Println("summer = ", summer) // 输出:summer = 1
fmt.Println("autumn = ", autumn) // 输出:autumn = 2
fmt.Println("winter = ", winter) // 输出:winter = 3
const (
a = iota + 5
b
c
d
)
fmt.Println("a = ", a) // 输出:a = 5
fmt.Println("b = ", b) // 输出:b = 6
fmt.Println("c = ", c) // 输出:c = 7
fmt.Println("d = ", d) // 输出:d = 8
// iota累加机制,是基于行的,同一行内的iota值一样
const (
q, w = iota + 5, iota - 3
e, r
)
fmt.Println("q = ", q, ",\\tw = ", w) // 输出:q = 5 , w = -3
fmt.Println("e = ", e, ",\\tr = ", r) // 输出:e = 6 , r = -2
const (
v1 = iota + 5
v2
v3 = iota + 3
v4 = iota + -1
)
fmt.Println("v1 = ", v1) // 输出:v1 = 5
fmt.Println("v2 = ", v2) // 输出:v2 = 6
fmt.Println("v3 = ", v3) // 输出:v3 = 5
fmt.Println("v4 = ", v4) // 输出:v4 = 2
}
^_^ 整理自《Go语言区块链应用开发从入门到精通》高野 编著
^_^ 本文已经被收录进《程序员成长笔记》 ,笔者JustryDeng
以上是关于Go基础定义枚举的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础
Go入门教程2内置基础类型(Boolean数值字符串错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值