Nim-常量和变量

Nim中的常量和变量

常量

常量在创建的是否就需要明确的绑定一个值,编译器必须能够在编译时计算常量声明中的表达式。

1
const x = "abc"  # 定一个一个值为"abc"的常量字符串:x

如果要定义多个常量, 可以把const写在前面( 让我感受到了go语言导包的味道)

1
2
3
4
const
x = 1
y = 2
z = y + 5

let 语句

let语句的行为和var看起来差不多,都可以用来定义变量,但是let语句定义的变量在初始化完成之后就无法再次修改。可以理解是一个不可变变量。

1
2
let x = "abc" # 没毛病,申明一个新变量x并给他赋值为"abc"
x = "xyz" # 非法的,不可以再修改x的值

let 和 const 的区别在于:let 引入了一个不能重新赋值的变量,const 的意思是“强制编译时评估并将其放入数据段”:

1
2
const input = readLine(stdin) #错误的,编译是无法明确input是什么
let input = readLine(stdin) # 正确的,他活了

变量

通过var声明的变量可进行多次赋值

1
2
var x = "abc"
x = "xyz"

= 是赋值运算符。赋值运算符可以重载。您可以使用单个赋值语句声明多个变量,并且所有变量将具有相同的值:

1
2
3
4
5
6
var x, y = 3  # assigns 3 to the variables `x` and `y`
echo "x ", x # outputs "x 3"
echo "y ", y # outputs "y 3"
x = 42 # changes `x` to 42 without changing `y`
echo "x ", x # outputs "x 42"
echo "y ", y # outputs "y 3"

Nim-常量和变量
http://cvrain.cloudvl.cn/2023/11/23/Nim/nim-constant-value/
作者
ClaudeRainer
发布于
2023年11月23日
许可协议