含义 : go 语言中 常量表示固定的值,常量不能在赋予其他值
常量的定义,使用const 定义
定义常量
package main
import "fmt"
func changl() {
const x = 55
fmt.Println(x)
}
func main() {
changl()
输出:55
}
修改常量,报错
package main
import "fmt"
func chang1() {
const x = 55
x = 34
fmt.Println(x)
}
func main() {
chang1()
输出:
报错 cannot assign to x
}
在const 使用iota
func changl2() {
const(
Monday = iota +1
Tue
Wed
Thu
Fri
Sat
Sun
)
fmt.Println(Monday,Tue,Wed,Thu,Fri,Sat,Sun)
}
在主函数中调用
func main() {
changl2()
}
输出内容:
1 2 3 4 5 6 7
iota 从0开始
在常量中使用 iota 可以进行位运算
func changl3() {
const(
Open = 1 << iota // 相当2的0 次方
Close // 位移1位 相当与 2 的1次方,以下相同
Pending
Crashing
)
fmt.Println(Open,Close,Pending,Crashing)
}
在主函数中调用
输出 1 2 4 8
iota 使用总结
- iota只能被使用在const限定中,相当于一个常量的计数器
- iota相当于一个枚举值,默认从0开始,在一个const中,会进行+1,
- iota不会因为const中被赋值了固定值,就不再增加,const中每有一个常量就+1,例如 x和y ,y并没有因为x被赋值为10,就是2,而是3
- 每次进入一个新的const,iota都会重新开始计算