文章目录
- 一、局部常量声明
- 二、全局常量声明
- 三、多行常量定义,值表达式为空时自动继承前一个
- 四、常量声明 - iota
一、局部常量声明
package main
import "fmt"
func main() {
//局部常量声明
//方式一:主动声明类型
const lengthA int = 10
//方式二:省略类型,自动推断类型
const lengthB = 30
//多行常量声明
const (
//可以主动声明类型
lengthC int = 40
//也可以自动推断类型
lengthD = 50
//多行声明中的多个变量,可以类型不同
stringE = "字符串E"
)
fmt.Println("lengthA = ", lengthA)
fmt.Println("lengthB = ", lengthB)
fmt.Println("lengthC = ", lengthC)
fmt.Println("lengthD = ", lengthD)
fmt.Println("stringE = ", stringE)
}
二、全局常量声明
普通声明时,与局部变量声明的方式一致:
package main
import "fmt"
//全局常量声明
//方式一:主动声明类型
const gContA int = 10
//方式二:省略类型,自动推断类型
const gContB = 10
//多行常量声明
const (
//可以主动声明类型
gContC int = 40
//也可以自动推断类型
gContD = 50
//多行声明中的多个变量,可以类型不同
gStringE = "字符串E"
)
func main() {
fmt.Println("gContA = ", gContA)
fmt.Println("gContB = ", gContB)
fmt.Println("gContC = ", gContC)
fmt.Println("gContD = ", gContD)
fmt.Println("gStringE = ", gStringE)
}
三、多行常量定义,值表达式为空时自动继承前一个
多行常量声明时,如果常量值表达式为空,则会和前一个常量的值表达式相同。
package main
import "fmt"
//多行常量声明时,如果常量值表达式为空,则会和前一个常量的值表达式相同。
const (
constA = 10
constB //其实等于 constB=10
constC //其实等于 constC=10
constD = 30
constE //其实等于 constE=30
constF //其实等于 constF=30
)
func main() {
fmt.Println("constA = ", constA)
fmt.Println("constB = ", constB)
fmt.Println("constC = ", constC)
fmt.Println("constD = ", constD)
fmt.Println("constE = ", constE)
fmt.Println("constF = ", constF)
}
四、常量声明 - iota
iota 是常量声明时的一个自增的特殊变量;
iota 在const 内部的第一行出现时,值为0,后续每新增一行,iota都会自增1。(可以理解为行索引或者行号)
具体用法,直接看代码和注释:
package main
import "fmt"
//多行常量声明时,如果常量值表达式为空,则会和前一个常量的值表达式相同。
const (
//iota=0
constAA = iota
//iota=2
constBB
//iota=3
constCC
//iota=4,constDD = 10 * 4
constDD = 10 * iota
//iota=5,constEE = 10 * 5
constEE
//iota=6,constEE = 10 * 6
constFF
constGG, constHH = iota, iota * 10
constII, constJJ
)
func main() {
fmt.Println("constAA = ", constAA)
fmt.Println("constBB = ", constBB)
fmt.Println("constCC = ", constCC)
fmt.Println("constDD = ", constDD)
fmt.Println("constEE = ", constEE)
fmt.Println("constFF = ", constFF)
fmt.Println("constGG = ", constGG)
fmt.Println("constHH = ", constHH)
fmt.Println("constII = ", constII)
fmt.Println("constJJ = ", constJJ)
}