6 Star 72 Fork 28

JustryDeng / notebook

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
[06]定义枚举.md 2.25 KB
一键复制 编辑 原始数据 按行查看 历史
JustryDeng 提交于 2023-05-08 11:32 . 规范命名文件夹

定义枚举


定义枚举

  • 定义枚举使用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语言区块链应用开发从入门到精通》 高野 编著
1
https://gitee.com/JustryDeng/notebook.git
git@gitee.com:JustryDeng/notebook.git
JustryDeng
notebook
notebook
master

搜索帮助