在Go语言中,常量(Constants)是固定值,在程序执行过程中不能被修改的量。与变量不同,常量是在编译时期就已经确定了其值,并且只能赋予能够被完全计算的表达式。
1. 常量的定义
在Go语言中,可以使用const关键字来定义常量。常量可以是字符、字符串、布尔值或者数值。常量的定义格式如下:
const identifier [type] = value
其中,const是关键字,identifier是常量的名称,type是可选的常量类型,value是常量的值。常量的名称和类型是必须的,值是可选的。以下是一些常量的定义示例:
const Pi = 3.1415926
const (
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
)
const (
Man = 1
Woman = 2
)
2. 类型推导的常量
在Go语言中,如果没有显示地为常量指定类型,那么编译器会根据常量的值来推导其类型。例如:
const x = 10 // x的类型为int const str = "Hello, World!" // str的类型为string const flag = true // flag的类型为bool
注意,常量的值不能超过其类型所能表示的范围。如果超过了,编译器将会报错。
3. 枚举常量
在Go语言中,可以使用const定义一组有序的常量,实现枚举的功能。以下是一个使用const定义枚举常量的示例:
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
Thursday // 4
Friday // 5
Saturday // 6
)
在这个示例中,Sunday的值为0,Monday的值为1,以此类推。通过使用iota关键字,可以在常量组中实现自增的效果。另外,iota还可以配合位运算符来定义一组常量,例如:
const (
Readable = 1 << iota // 1
Writable // 2
Executable // 4
)
在这个示例中,Readable的值为1,Writable的值为2,Executable的值为4,依次递增。这样定义的常量可以同时标记多个状态,使用时可以通过与运算来判断状态的组合。