Golang常量

常量:就是为一块内存地址起的别名,通过这个别名可以快速的找到这块内存地址,常量中的类型和值在定义时指定好后,就不能再修改了,所以叫做“常量”。

常量的声明格式:

    const 常量名 类型 = 值
const CONST_A string = "GO CONST A"

如果要声明一组常量,可以用到iota,iota是go语言中预定义的一个常量,且还带有可变效果,看下面的示例。

package main

import "fmt"

func main() {

	const (
		a0 = iota
		a1 = iota
		a2 = iota
	)
	fmt.Println("a0:",a0)
	fmt.Println("a1:",a1)
	fmt.Println("a2:",a2)
}

输出结果:

a0: 0
a1: 1
a2: 2

在代码中,使用const ()定义了一组三个常量,常量中都是使用iota来赋值的,iota第一次出现的值是0,第二次是1,第三次是2,所以最终打印结果分别是:0-1-2。

需要注意的是,iota只有在一组常量定义中才会递增+1,如果重新开始定义常量,那么iota还会从0开始计数,看下面的示例。

package main

import "fmt"

func main() {

	const (
		a0 = iota
		a1 = iota
		a2 = iota
	)
	const (
		a3 = iota
	)
	fmt.Println("a0:",a0)
	fmt.Println("a1:",a1)
	fmt.Println("a2:",a2)
	fmt.Println("a3:",a3)
}

输出结果:

a0: 0
a1: 1
a2: 2
a3: 0

a3并不是和a0-a2在一组中定义,所以a3使用iota最终赋值是0。