1、常量申明
--相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。
--逐个赋值
const pi = 3.1415
const e = 2.7182
--批量声明:
const (
pi = 3.1415
e = 2.7182
)
--const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 例如:
const (
n1 = 100
n2
n3
)
n1 n2 n3 都是 100
--代码示例:
package main
import "fmt"
const s3 = "li" // 常量可以在函数体外声明 并 赋值,变量只能声明
func main() {
const (
s1 = "liming"
s2 = "yuel" // 常量可以声明了,但是不使用
)
const (
n1 = 100
n2
n3
)
fmt.Println()
fmt.Println(s3)
fmt.Println(n1)
fmt.Println(n2)
fmt.Println(n3)
}
2、iota 常量计数器
--iota是go语言的常量计数器,只能在常量的表达式中使用
--iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
--示例1:
const (
a1 = iota
a2
a3
)
fmt.Println(a1) // 0
fmt.Println(a2) // 1
fmt.Println(a3) // 2
--示例:
const (
b1 = iota
b2 = iota
_ = iota
b3 = iota
)
fmt.Println(b1) // 0
fmt.Println(b2) // 1
fmt.Println(b3) // 3
--示例:
const (
c1 = iota
c2 = 100
_ = iota
c3
c4 = iota
)
fmt.Println(c1) // 0
fmt.Println(c2) // 100
fmt.Println(c3) // 3
fmt.Println(c4) // 4
--示例:
--const关键字出现时将被重置为0
--const中每新增一行常量声明将使iota计数一次
const (
d1, d2 = iota + 1, iota + 2 // d1:1 d2:2
d3, d4 = iota + 1, iota + 2 // d2:2 d2:3
)
fmt.Println(d1) // 1
fmt.Println(d2) // 2
fmt.Println(d3) // 2
fmt.Println(d4) // 3
--示例: 定义数量级
const (
_ = iota // 舍弃了
KB = 1 << (10 * iota) // 左移10位 == 1024
MB = 1 << (10 * iota) // 左移20位
GB = 1 << (10 * iota) // 左移30位
TB = 1 << (10 * iota) // 左移40位
PB = 1 << (10 * iota) // 左移50位
)
--示例:
const (
a, b = iota + 1, iota + 2 //1,2
c, d //2,3
e, f //3,4
)