常量与变量的区别就在于,常量赋值后是不能再次被赋值的。因此常量是不可变的,而且数据类型只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。其余的与变量差不多(声明,赋值等操作)
常量的声明格式为:const 关键字(变量名) 类型
package main import "fmt" func main() { // 声明常量同时赋值 const AGE int = 21 // 一般定义常量时,关键字都使用大写的。 fmt.Println(AGE) const NAME string = "傻笑zz" fmt.Println(NAME) }
执行结果:
21
傻笑zz
package main import "fmt" func main() { // 声明多个常量(不带类型,自动倒推变量类型) const NAME, AGE = "傻笑zz", 21 fmt.Printf("NAME常量类型为=%T,值为=%v\n", NAME, NAME) fmt.Printf("AGE常量类型为=%T,值为=%v\n", AGE, AGE) // 声明多个常量(使用括号) const ( HIGHT float64 = 1.81 GENDER string = "男" ) fmt.Printf("HIGHT常量类型为=%T,值为=%v\n", HIGHT, HIGHT) fmt.Printf("GENDER常量类型为=%T,值为=%v\n", GENDER, GENDER) }
执行结果:
NAME常量类型为=string,值为=傻笑zz
AGE常量类型为=int,值为=21
HIGHT常量类型为=float64,值为=1.81
GENDER常量类型为=string,值为=男
枚举的意思即为:列举,将所有的情况都列举出来
package main import "fmt" func main() { // 定义枚举(枚举的意思即为:列举,将所有的情况都列举出来) // 当A=100时,B和C自动加iota,将自动加1 const ( A = iota + 100 B C ) fmt.Printf("A=%d\nB=%d\nC=%d\n", A, B, C) // 使用枚举自动计数(默认从0开始) const ( AA = iota BB CC DD ) fmt.Printf("AA=%d\nBB=%d\nCC=%d\nDD=%d\n", AA, BB, CC, DD) }
执行结果:
A=100
B=101
C=102
AA=0
BB=1
CC=2
DD=3