Go语言常量
程序员文章站
2022-07-01 23:52:23
常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量中的数据类型只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式: 可以省略类型说明符[type],因为编译器可以根据变量值来推断其类型。 显式类型定义: const b string = "cstxco" 隐式类型定 ......
常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:
//const 常量名 类型 值 const identifier [type] = value
可以省略类型说明符[type],因为编译器可以根据变量值来推断其类型。
- 显式类型定义: const b string = "cstxco"
- 隐式类型定义: const b = "cstxco"
无论是变量还是常量,不同类型的都不能显式的声明在一行:
var a int, b float32 = 1, 2.4 //编译器不通过 const c int, d float32 = 3, 4.4 //编译器不通过
常量可以用len()、cap()、unsafe.sizeof()常量计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不通过:
package main import "unsafe" const ( a = "cstxco" b = len(a) c = unsafe.sizeof(a) ) func main() { println(a, b, c) }
iota
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。iota可以被用作枚举值:
const( a = iota b = iota c = iota )
第一iota等于0,每当iota在新的一行被使用时,它的值都会自动加1;所以a=0,b=1,c=2,可以简写为如下形式:
const( a = iota b c )
用法示例:
package main import "fmt" func main() { const( a = iota //0 b //1 c //2 d = "itbsl" //独立值,iota += 1 e //itbsl iota += 1 f = 200 //200 iota += 1 g //200 iota += 1 h = iota //7,恢复计数 i //8 ) fmt.println(a, b, c, d, e, f, g, h, i) }
输出结果为
0 1 2 itbsl itbsl 200 200 7 8
当我们定义常量时,如果多个常量的值相同,后面的常量可以直接不赋值,默认等同于上面已赋值的常量的值
package main import "fmt" //当我们定义常量时,如果多个常量的值相同,后面的常量可以直接不赋值,默认等同于上面已赋值的常量的值 const ( a = "itbsl" c d ) func main() { fmt.println(a, c, d) }
输出结果为
itbsl itbsl itbsl
上一篇: asp 常用函数用法