- 单个常量的声明且赋值
序号 | 描述 | 示例 |
1 | 显式声明 | const a int = 10 |
2 | 隐式声明,自动推导类型 | const a = 10 |
- 多个常量声明且赋值
序号 | 描述 | 示例 |
1 | 类型相同,显式类型 | const a, b, c int= 1, 2, 3 |
2 | 类型相同,隐式推导 | const a, b, c = 1, 2, 3 |
3 | 类型不同,显式类型 | const a, b int =1, 2 const c string= “hehe” |
4 | 类型不同,隐式推导 | const a, b, c = 1, 2, “hehe" |
5 | 因式分解关键字 | const ( a int = 1 b string = “hehe" c ) |
注意5中c的值是“hehe”.
-
itoa枚举
a.在每一次const关键字出现时,被重置为0;
b.const中每新增一行常量的声明,就使itoa计数一次;
c.某一行有新的常量声明,则这一行的iota的值会被“覆盖”,直到重新出现iota,恢复其所在位置的值。
package main
import "fmt"
func main() {
const ( //出现const iota = 0
a = iota
b = "hehe" //iota+1
c //iota+1
d = 5 //iota +1
e = iota //iota+1
f
)
const (
g = iota //出现const iota = 0
h
)
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
fmt.Println(e)
fmt.Println(f)
fmt.Println(g)
fmt.Println(h)
}
编译运行:go build
运行:./main
运行结果:
iota虽然在b,c,d 都没有调用,仍然自增,到e的时候为4,在g时出现const,iota 重新置零