一、常量相关概念
1、常量概念
常量,是一些表达式
2、特点
常量的值能够被编译器感知到,常量值的计算一定发生在编译时期,而不是运行时期
每一个常量的底层数据类型一定是某个基本类型:boolean类型、string类型或数值类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19// 常量的值为字符串
const (
COMMA = ","
DOT = "."
SEMICOLON = ";"
)
// 常量的值为布尔值
const (
SUCCESS = true
FAILED = false
)
// 常量的值为数字
const (
CNY = iota
USD
EUR
)
被编译器感知的好处
操作数是常量的运算,提前到了编译器,不仅可以做编译优化,还能提升运行时的性能
如果表达式的操作数是常量,那么一些运行时的错误就可以提前在编译器被发现
比如:除数为0、字符串索引越界、浮点数计算导致的正负无穷等等
2、使用
对两个常量值进行算术、逻辑和比较操作,得到的结果仍然是常量,即使对结果进行强制转换,或者调用内置函数(比如:
len
、cap
、real
、imag
、complex
、unsafe.Sizeof
)常量表达式可以作为复杂数据类型的一部分,比如数组类型的长度
比如:要定义一个IPv4地址
1
2
3
4
5const IPv4Len = 4
func parseIPv4(s string) IP {
// 函数体
}
二、常量的声明
1、使用const
声明
1 | const PI = 3.1415926 |
1)批量形式的常量声明与初始化
1 | const ( |
2)特殊形式的声明与初始化
1 | const ( |
说明:这里go
会将n2
和n3
同时赋值100
2、常量生成器iota
的使用
1)功能:const语句块里的行索引
将const第一个出现的iota
重置为0
,然后在const
中每新增一行常量声明,iota
将重新计数一次
2)典型例子
1 | const ( |
1 | const ( |
1 | const ( |
1 | const ( |
1 | /*日常网盘单位声明*/ |
扫描二维码,分享此文章