Golang 速成 | 变量及常量¶
变量¶
单变量声明¶
第一种,指定变量类型,声明后若不赋值,使用默认值 0 :
Go | |
---|---|
第二种,根据值自行判定变量类型:
Go | |
---|---|
第三种,省略 var
, 注意 :=
左侧的变量必须未声明,并且该声明在函数体内,否则会导致编译错误:
示例:
Go | |
---|---|
多变量声明¶
源码¶
常量¶
常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:
Go | |
---|---|
你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
示例:
Go | |
---|---|
用作枚举:
常量可以用 len()
, cap()
, unsafe.Sizeof()
常量计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不通过:
Go | |
---|---|
输出结果为:abc, 3, 16
unsafe.Sizeof(a)
输出的结果是 16 ,因为字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节,所以字符串类型大小为 16 个字节。
优雅的常量 iota¶
在 golang 中,一个方便的习惯就是使用 iota
标示符,它简化了常量用于增长数字的定义,给以上相同的值以准确的分类:
iota
每经过一行,会增加 1 ,第一行的初始值为 0 。此外,还能对 iota
进行一些运算:
第一行之后,下面每一行的常量也会被赋值为 iota + 1, iota + 2
,最终结果为:
Text Only | |
---|---|