Go-常量声明与iota常量计数器

Golang中我们会使用const来声明常量

相对于变量、常量是一个恒定不变的值,简化定义常用于定义枚举

不同于变量的是--常量在定义的同时是必须要给其赋值的

目录

常量的使用

iota的使用与iota在声明中插队

 多个iota定义在一行


常量的使用

当然我们也可以一次声明多个常量:

package main

import "fmt"

func main() {
	const (
		num  = 10
		num2 = 20
		num3 = 30
		num4 = 40
	)
	fmt.Println(num, num2, num3, num4)
}

如果我们声明常量时--省略了之后的常量赋值,那么表示和上一行常量的值相同:

package main

import "fmt"

func main() {
	const (
		num = 10
		num2
		num3
		num4 = 30
		num5
	)
	fmt.Println(num, num2, num3, num4, num5)
}


iota的使用与iota在声明中插队

iota是Go语言的常量计数器,只能在常量的表达式中使用

我们来看一下它的定义:

iota在const关键字出现时将被重置为0,const中每新增一行常量声明,将使iota计数一次

iota可以理解为const语句块中的行索引

这些话有些官方了,我们可以理解为const只要出现,那么iota就会初始化为0,且形成索引递增加1

package main

import "fmt"

func main() {
	const (
		num = iota
		num2
		num3
		// 匿名变量 _
		_
		num4
		num5 = 30
		num6
	)
	fmt.Println(num, num2, num3, num4, num5, num6)
}


 多个iota定义在一行

可能一眼看过去不是那么容易理解,我们可以回想一下iota的定义:

iota在const关键字出现时将被重置为0,const中每新增一行常量声明,将使iota计数一次

所以iota不是以常量的数量来向上读取并计数的,而是一行一行的向上读取并计数(以行为单位)

func main() {
	const (
		num, num1 = iota + 10, iota + 11
		num2, num3
		num4, num5
	)
	fmt.Println(num, num1, num2, num3, num4, num5)
}

猜你喜欢

转载自blog.csdn.net/weixin_63836026/article/details/124786446
今日推荐