变量, 不变量, 常量
定义他们的关键字分别是 var, let, const
var 与 let 都是运行时求值, 而 const 在编译时就会 尝试求值展开
let 与 const 声明的量不可变, 不必多说
默认 它们 声明的变量的类型可以 自动推导, 如果不能推导就需要写清楚类型
这里有点像 rust, 就是 rust 的编译器比 nim 更加智能, 目前而言
| let bits: uint8 = 0b1101_1011
|
如下获取字母表, 这里只需要知道 get_alphabet 是一个函数:
| proc get_alphabet(): string =
var alphabet = ""
for letter in 'a' .. 'z':
alphabet.add(letter)
return alphabet
const const_alpha = get_alphabet()
echo const_alpha
|
一些函数不能求值, 只能运行时求值:
| import std/random
# randomize()
const guess = rand(high(int))
echo guess
|
| nim/lib/pure/random.nim(281, 8) Error: cannot evaluate at compile time: state
|