- 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式。
package main
import "fmt"
const (
a = 1
b
c
d
)
func main() {
fmt.Println(a)
// b、c、d没有初始化,使用上一行(即a)的值
fmt.Println(b) // 输出1
fmt.Println(c) // 输出1
fmt.Println(d) // 输出1
}
- 使用相同的表达式,不代表具有相同的值
- iota是常量的计数器,从0开始,组中每定义一个常量,自动递增1.
- 通过初始化规则与iota可以达到枚举的效果
- 每遇到一个const关键字,iota就会重置为0
package main
import "fmt"
const (
a = "ast"
b = "bst"
c = iota
d
)
func main() {
fmt.Println(a) // ast
fmt.Println(b) // bst
// c=iota, iota从0开始,组中每定义一个常量自动递增1,在本组中,c之前定义了2个常量,
// 所以iota增加了2,即:iota = 2
fmt.Println(c) // 2
// 枚举效果
fmt.Println(d) // 3
}
@转载 https://blog.csdn.net/u010041244/article/details/83111823