含义 : 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都会重新开始计算