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操作,零值

Go基础常用的print打印

Go基础指针地址间接赋值

go语法基础文档

go语音基础之iota枚举