Skip to content

变量, 不变量, 常量

定义他们的关键字分别是 var, let, const

varlet 都是运行时求值, 而 const 在编译时就会 尝试求值展开


letconst 声明的量不可变, 不必多说


默认 它们 声明的变量的类型可以 自动推导, 如果不能推导就需要写清楚类型

这里有点像 rust, 就是 rust 的编译器比 nim 更加智能, 目前而言

let bits: uint8 = 0b1101_1011

如下获取字母表, 这里只需要知道 get_alphabet 是一个函数:

1
2
3
4
5
6
7
8
proc get_alphabet(): string = 
    var alphabet = ""
    for letter in 'a' .. 'z':
        alphabet.add(letter)
    return alphabet

const const_alpha = get_alphabet()
echo const_alpha

一些函数不能求值, 只能运行时求值:

1
2
3
4
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