1 常量定义
Go语言中的常量定义从形式上可以分为显式和隐式两种:
- 显式:
const identifier [type] = value
- 隐式:
const identifier = value
隐式定义的常量叫做:无类型常量
分组常量的定义形式和Go语言中变量的分组定义形式一致。
除了通过定义表达式进行常量定义,常量还可以通过一些Go语言的内置表达式进行计算。如使用len()
,unsafe.Sizeof()
等内置表达式进行常量的赋值。
关于大写:
Go语言中的大小写是有特殊含义的,所以,在Go语言中,定义常量不需要像其他语言一样全部大写变量名。
2 常量的类型
常量的类型范围目前仅支持以下几种:
- 布尔型
- 数字型(整型,浮点型和复数型)
- 字符串型
3 特殊常量iota
iota
是一个特殊的内置常量,在const
关键词出现的位置,iota值将会被重置为0。而const
中每新增一行常量声明,iota都会计数一次。
iota常见的用法有如下几种:
- 跳值使用法
- 插队使用法
- 表达式隐式使用法
-
单行使用法
下面是一个典型的跳值使用法
输出结果如下所示:
a的常量值:0
b的常量值:1
c的常量值:3
下面是一个典型的插队使用法。其中,常量b挤占了本来应该是1
的位置,插队了。
package main
import "fmt"
const (
a = iota
b = 3.14
c = iota
)
func main() {
fmt.Print("a的常量值:")
fmt.Println(a)
fmt.Println("\n")
fmt.Print("b的常量值:")
fmt.Println(b)
fmt.Println("\n")
fmt.Print("c的常量值:")
fmt.Println(c)
fmt.Println("\n")
}
输出结果为:
a的常量值:0
b的常量值:3.14
c的常量值:2
4 使用常量定义枚举类型
Go语言中,没有特殊的枚举关键字,我们一般就直接const变量来实现枚举。
const (
cpp = 1
python = 2
golang = 3
)