在使用Go语言开发时,不可避免的会使用一些常量。本篇文章对常量做一个简单的总结。
一、常量的概念
1、基本介绍
- 常量是一个简单值的标识符,在程序运行时,不能修改的量。
- 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
- 常量使用const 修改
- 常量在定义的时候,必须初始化
2、语法:
const identifier [type] = value
3、声明常量
1)声明一个常量
const MAX = 10000
const max= 10000
2)声明一个指定类型的常量
const LIMIT int16 = 1024
const LIMIT2 = int16(1024)
const limt int16 = 1024
const limt 2 = int16(1024)
3)声明一组常量
const (
a= 1
b=2
c= 3
)
4)声明一组指定类型的常量
const (
a int8 = 1
b int32 = 2
c int64 = 3
)
4、iota
iota:特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
如:
const(
a = iota
b
c
)
输出:
0 1 2
二、常量使用细节和注意事项
1、声明常量时,数据类型可声明也可不声明
const(
a int = 1
b = 2
c = 3
)
2、使用itoa ,也称专业写法
const(
a = iota
b
c
)
3、go语言中对常量名大小写没有规范,既可以大小,也可以小写。
const(
a = iota
B
c
)
4、常量的作用域同变量相似,通过首字母大下写,来确定作用域范围,大写即为全局,小写为局部。
5、itoa 使用注意点(面试题)
const(
a = iota
b
c,d = iota, iota
)
输出:
0 1 2 2
可以理解为itoa使用时,以行分割。同一行,常量值都相同。
6、itoa 使用注意点——位移相关
const (
a=1<<iota
b=3<<iota
c
d
)
输出:
1 6 12 24
简单分析:
a=1:左移 0 位,不变仍为 1;
b=3:左移 1 位,变为二进制 110, 即 6;
c=3:左移 2 位,变为二进制 1100, 即 12;
d=3:左移 3 位,变为二进制 11000,即 24。