常量
1、常量定义
常量是一个简单值的标识符,在程序运行时,不会被修改的量,使用const修饰一个常量
代码示例
package main
func main() {
const a string = "abc" //显示类型定义
const b = "abc" //隐示类型定义
const c, d = "o", "k"
println(a, b, c, d)
}
查看运行结果
2、常量还可以用作枚举
并且常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过
代码示例
package main
import "unsafe"
func main() {
//const a string = "abc" //显示类型定义
//const b = "abc" //隐示类型定义
//const c, d = "o", "k"
//println(a, b, c, d)
const (
Unknown = 0
Female = 1
Male = 2
)
const (
a = "abc"
b = len(a)
c = unsafe.Sizeof(a) //16个字节,返回string结构体的字符与长度各8个字符相加
)
println(Unknown, Female, Male, a, b, c)
}
运行结果查看
3、特殊常量iota
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
代码示例
package main
func main() {
const (
a = iota
b
c
)
println(a, b, c)
}
查看运行结果
**代码示例
package main
import "fmt"
func main() {
//println(a, b, c)
const (
a = iota //0
b //1
c //2
d = "ha" //独立值,iota += 1
e //"ha" iota += 1
f = 100 //iota +=1
g //100 iota +=1
h = iota //7,恢复计数
i //8
)
fmt.Println(a, b, c, d, e, f, g, h, i)
}
**查看运行结果