变量¶
在 Riddle 中,一个变量可以有三种定义方法,分别是
- 可变 :
var
- 不可变 :
val
- 常量 :
const val
可变量 (Variable)¶
可变量指一个标识符所对应的值可以在运行期间多次更改。
你可以通过以下方法来定义一个可变量
var <name> = <value>
var <name> : <typename>
var <name> : <typename> = <value>
和大部分语言一样,同一个作用域中只能定义一次某个标识符所表示的变量
由于 Riddle 是强类型语言,所以你不能改变一个已经被定义的变量的类型
变量在不同作用域中可以多次定义,变量在生命周期结束时会调用析构函数。你可以通过引用来获取这个变量的实际地址,但是在作用域外使用该地址是未定义行为。
不可变量 (ValueVar)¶
不可变量是变量的一个变种,本质上还是一个变量并且也拥有相应的内存地址。
通过编译器约束不可变量的赋值行为,使其成为不可变。
常量 (Constant)¶
常量是一个完全不可变的量,在编译期确定,没有相应的内存地址。
它与不可变量的最大的区别就是常量的值在编译器确定,由编译器优化后速度更快。