Go如何声明常量「简单易懂」

规则

常量的数据类型只能是以下几种:

  • 布尔型
  • 数字型(整数型、浮点型和复数)
  • 字符串型

一般形式

package main

func main(){
	//常量声明符号 + 变量名 + 数据类型 
	const first int = 520
	
	println("first:", first)
}


package main

func main(){
	//常量声明符号 + 变量名
	//会自动推断数据类型
	const first  = 520

	println("first:", first)
}


作为枚举的形式

package main



func main(){
	//显示的声明
	/*
	   const(
	   	Monday int = 1
	   	Tuesday int = 2
	   	Wednesday int = 3
	   )
	*/

	//隐式的声明,会自动推断数据类型
	const(
		Monday  = 1
		Tuesday  = 2
		Wednesday  = 3
	)

	fmt.Println("Monday:", Monday) // 1
	fmt.Println("Tuesday:", Tuesday) // 2
	fmt.Println("Wednesday:", Wednesday) // 3
}


特殊常量 iota

注:iota 的初始化为 0, 每一行都会增加1,也就是" iota = iota + 1"

package main

import "fmt"

func main(){

	const(
		Monday = 1 + iota
		Tuesday
		Wednesday
	)

	fmt.Println("Monday:", Monday) // 1
	fmt.Println("Tuesday:", Tuesday) // 2
	fmt.Println("Wednesday:", Wednesday) // 3
}


直接在每个常量后面赋值 iota

package main

import "fmt"

func main(){

	const(
		Monday = 1 + iota
		Tuesday = iota
		Wednesday = iota
	)

	fmt.Println("Monday:", Monday) // 1 因为 iota 在这为0,本身又加1,所以为1
	fmt.Println("Tuesday:", Tuesday) // 1 iota 在这为1
	fmt.Println("Wednesday:", Wednesday) // 2 iota 在这为2
}

常量的一些小错误点

不能重新被赋值
package main

import "fmt"

func main(){

	const first int = 520

	fmt.Println("first:", first)
	//这里出现错误提示:Cannot assign to first「不能分配给 first」
	first = 1314 
}


欢迎大家关注下个人的「公众号」:独醉贪欢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章