Go语言常量
Posted Go程序员开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言常量相关的知识,希望对你有一定的参考价值。
Go语言常量
常量是一个简单值的标识符,在程序运行时,永远是只读的,不能修改。
使用 const 关键字定义常量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量定义
第一种,显式类型定义
const name string = "oldboy"
第二种,隐式类型定义,一个未指定类型的常量由上下文来决定其类型
const age = 18
第三种,一次性定义多个常量
const Mon, Tues, Wed, Thur, Fri, Sat, Sun = 1, 2, 3, 4, 5, 6, 7
const (
name = "oldboy"
age = 18
)
第四种,常量可以用len(),cap(),unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过:
const (
a = "abc"
b = len(a)
c = unsafe.Sizeof(b)
)
常量技巧
未使用的局部常量不会引发编译错误。实例如下:
package main
func main() {
const str = "The old boy welcomes you."
}
在常量组中,如不提供类型和初始化值,那么视作与上一个常量相同。实例如下:
package main
import (
"fmt"
)
func main() {
const (
name = "oldboy"
nickname
)
fmt.Printf("name : %s, nickname : %s\n", name, nickname)
}
运行结果:
name : oldboy, nickname : oldboy
特殊常量
特殊常量,iota,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
关键字 iota 定义常量组中从 0 开始按行计数的自增枚举值。实例如下:
package main
import (
"fmt"
)
const (
Sunday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
func main() {
fmt.Println(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
}
运行结果:
0 1 2 3 4 5 6
在同一常量组中,可以提供多个 iota,它们各自增长。实例如下:
package main
import (
"fmt"
)
const (
A1, B1 = iota, iota << 10
A2, B2
)
func main() {
fmt.Println(A1, B1, A2, B2)
}
运行结果:
0 0 1 1024
如果 iota 自增被打断,须显式恢复。实例如下:
package main
import (
"fmt"
)
const (
Sun = iota
Mon
Tues
Wed = "Wednesday"
Thur
Fri = iota
Sat
)
func main() {
fmt.Println(Sun, Mon, Tues, Wed, Thur, Fri, Sat)
}
运行结果:
0 1 2 Wednesday Wednesday 5 6
下一篇:
Go语言包和文件------敬请期待!
0基础学习Go语言系列:
看完本文有收获?请转发分享给更多人
长按二维码
以上是关于Go语言常量的主要内容,如果未能解决你的问题,请参考以下文章