Golang入门到项目实战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 ", a1) fmt.Printf("a2: %v ", a2) fmt.Printf("a3: %v ", a3) }
运行结果[Running] go run "d:SynologyDrive软件开发gogolang入门到项目实战goproject360duote.compro01contant.go" 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 ", a1) fmt.Printf("a2: %v ", a2) fmt.Printf("a3: %v ", a3) }
运行结果[Running] go run "d:SynologyDrive软件开发gogolang入门到项目实战goproject360duote.compro01contant.go" a1: 0 a2: 1 a3: 2
使用_跳过某些值package main import "fmt" func main() { const ( a1 = iota _ a2 = iota ) fmt.Printf("a1: %v ", a1) fmt.Printf("a2: %v ", a2) }
运行结果[Running] go run "d:SynologyDrive软件开发gogolang入门到项目实战goproject360duote.compro01contant.go" a1: 0 a2: 2
iota声明中间插队package main import "fmt" func main() { const ( a1 = iota a2 = 100 a3 = iota ) fmt.Printf("a1: %v ", a1) fmt.Printf("a2: %v ", a2) fmt.Printf("a3: %v ", a3) }
运行结果[Running] go run "d:SynologyDrive软件开发gogolang入门到项目实战goproject360duote.compro01contant.go" a1: 0 a2: 100 a3: 2