常量,就是在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值。在Go程序中,常量可以是数值类型(包含整型、浮点型和复数类型)、布尔类型、字符串类型等。
定义常量的语法
定义一个常量使用 const 关键字,语法格式如下
const constantName [type] = value
/*
const:定义常量关键字
constantName:常量名称
type:常量类型
value:常量的值
*/
实例
package main
func main() {
const PI float32 = 3.14
const PI2 = 3.1415 //可以省略类型
const (
width = 100
height = 200
)
const i, j, k = 1, 2, "hei"//多重赋值
}
iota
iota比较特殊,可以被认为是一个可被编译器修改的常量,它的默认值开始值是0,每调用一次加1。遇到const关键字时被重置为0。
package main
import "fmt"
func main() {
const (
a1 = iota
a2 = iota
a3 = iota
)
fmt.Printf("a1: %v\n", a1) //a1: 0
fmt.Printf("a2: %v\n", a2) //a2: 1
fmt.Printf("a3: %v\n", a3) //a3: 2
}
使用 _ 跳过某些值
package main
import "fmt"
func main() {
const (
a1 = iota
_
a2 = iota
)
fmt.Printf("a1: %v\n", a1) //a1: 0
fmt.Printf("a2: %v\n", a2) //a2: 2
}
iota声明中间插队
package main
import "fmt"
func main() {
const (
a1 = iota
a2 = 100
a3 = iota
)
fmt.Printf("a1: %v\n", a1) //a1: 0
fmt.Printf("a2: %v\n", a2) //a2: 100
fmt.Printf("a3: %v\n", a3) //a2: 2
}