程序语言中常量被定义后就不能再被其它代码所修改了,就像宇宙定义了月亮绕地球,地球绕太阳,不能改为月亮去绕太阳一样的道理,常量通常用于定义某些不可让外部代码修改的值,常见的有目录路径、程序版本号、π派、宇宙最低温度-273.15等。
关于命名:开发项目中为了区别变量与常量,我们通常将常量定义为全部大写。变量如果没有使用编译的时候会报错,但是常量不会,常量如果定义时没有给初始值则会和上一组一样(看本文最后的代码演示)
定义格式为:
const CONSTNAME [type] = value
例如:
const SITENAME string = "网络人" //显式类型定义
//也可以使用推导方式,同变量http://www.55mx.com/go/70.html,但有关键字const所以不能使用:=方式哦~
const SITENAME = "网络人"//隐式类型定义
和变量一样,可以同时定义多个常量。
const SITENAME , SITEURL= "网络人", "http://www.55mx.com/"
还是和变量一样,const定义块
const (
SITENAME = "网络人"
AGE = 10
SITEURL = "http://www.55mx.com/"
URLSITE =len(SITEURL)//常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过
)
iota是一个可以被编译器修改的常量,在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
const (
A = iota
B = iota
C = iota
)
func main() {
fmt.Println(A,B,C) //输出为0 1 2
}
看看iota特殊的地方:
const (
A = iota
B
C
D = "string"
S
E = iota+10
F
G
)
func main() {
fmt.Println(A, B, C, D, S, E, F,G) //输出为0 1 2 string string 15 16 17
}
常量将特殊的值,语义化。使用时,可以知道其具体含义。常量有得数据的集中管理,更改常量定义,即可完成全部的修改。并保证不被程序的其他代码所更改。
常量只可以使用布尔值,数字型(整数、浮点、复数)和字符串类型。
除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/72
《GO语言学习笔记3:常量的N种定义与使用》的网友评论(0)