常量,程序运行时,不能被修改。
定义一个常量
package main
import "fmt"
func main() {
// 定义常量PI
const PI float32 = 3.14
var r float32 = 1
fmt.Println("半径r=1的圆面积为:", PI*r*r)
r = 2
fmt.Println("半径r=2的圆面积为:", PI*r*r)
//修改常量,会报错 cannot assign to PI (neither addressable nor a map index expression)
// PI = 3.1415
}
定义多个常量
package main
import "fmt"
func main() {
const (
LENGTH = 10
WIDTH = 4
HEIGHT = 5
)
fmt.Printf("长=%d宽=%d高=%d的长方体体积为=%d\n", LENGTH, WIDTH, HEIGHT, LENGTH*WIDTH*HEIGHT)
}
常量用作枚举
package main
import "fmt"
func main() {
const (
Unknown = 0
Female = 1
Male = 2
)
var sex int = 2
fmt.Println(sex == Male) //true
}
iota常量
iota,特殊常量,第一个iota等于0,每当iota在新的一行被使用时,它的值都会自动加1。
package main
import "fmt"
func main() {
const (
a = iota //0
b //1
c //2
d = "hello" //独立值,iota += 1
e //独立值,iota += 1
f = 100 //独立值,iota +=1
g //独立值,iota +=1
h = iota //7,恢复计数
i //8
)
fmt.Println(a, b, c, d, e, f, g, h, i) //0 1 2 hello hello 100 100 7 8
}