目录
go语言常量
常量,就是在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值。
在go程序中,常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等
定义常量的语法
定义一个常量使用const关键字 语法格式如下
const constantName [type]= value
const : 定义常量关键字
constantName : 常量名字
type : 常量类型
value : 常量的值
package main
func main() {
const PI float64 = 3.14
const PI2 = 3.1415 // 可以省略类型
const (
width = 100
height = 200
)
const i, j = 1, 2 // 多重赋值
const a, b, c = 1, 2, "foo"
}
const 同时声明多个常量时,如果省略了值则表示和上面一行的值相同
package main
import "fmt"
func main() {
const (
a1 = 100
a2
a3
)
fmt.Printf("a1: %v\n", a1)
fmt.Printf("a2: %v\n", a2)
fmt.Printf("a3: %v\n", a3)
}
运行结果:
a1: 100
a2: 100
a3: 100
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)
fmt.Printf("a2: %v\n", a2)
fmt.Printf("a3: %v\n", a3)
}
运行结果:
a1: 0
a2: 1
a3: 2
使用 _ 跳过某些值
package main
import "fmt"
func main() {
const (
a1 = iota
_
a2 = iota
)
fmt.Printf("a1: %v\n", a1)
fmt.Printf("a2: %v\n", a2)
}
运行结果
a1: 0
a2: 2
iota声明中间插队
package main
import "fmt"
func main() {
const (
a1 = iota
a2 = 100
a3 = iota
)
fmt.Printf("a1: %v\n", a1)
fmt.Printf("a2: %v\n", a2)
fmt.Printf("a3: %v\n", a3)
}
运行结果
a1: 0
a2: 100
a3: 2