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