2.4. 常量声明

常量声明以关键字 const 开始,一般语法如下:

const 常量名: 类型 = 常量值

比如下面的例子:

// 版权 @2023 凹语言 作者。保留所有权利。

const Answer: i32 = 42
const aConstString: string = "你好,凹语言"

func main {
    println(Answer)
    println(aConstString)
    println(aConstInt)
}

const aConstInt = 13

该程序运行的输出如下:

42
你好,凹语言
13

声明常量时,如果不指定类型(比如上例中的 aConstInt),那么它将是无类型常量,无类型常量有4种类型,分别为:无类型整数、无类型浮点数、无类型字符、无类型字符串,常量值写法如下:

const aUntypedInt = 11       // 无类型整数
const aUntypedFloat = 13.0   // 无类型浮点数
const aUntypedRune = 'a'     // 无类型字符
const aUntypedString = "abc" // 无类型字符串

对常量值的算数逻辑运算是在编译时完成的,比如:

// 版权 @2019 凹语言 作者。保留所有权利。

const K = 4200000000000000000000000
const J = 4200000000000000000000000

func main {
    println(K/J)
}

虽然KJ的值均超过了凹中位数最多的整数类型i64的表达范围,但是K/J的值仍然能被正确打印。这也侧面体现了数值常量拥有超过变量基本类型的表达范围和精度

将常量赋值给变量时的相关规则,将在第3章详细讨论。