可变性
ReScript 在传统的命令式且数据可变的编程方式上表现不错。你应当谨慎使用这些特性,但有时候它们可以让你的代码有更好的性能,也可以让你用更熟悉的方式编写代码。
可变 let 绑定
let 绑定是不可变的,但是你可以用一个 ref 来包装它,这在标准库中被暴露为一个带有单独可变字段的记录:
用法
你可以通过访问 content 字段获得 ref 包装的实际值:
像下面这样给 myValue 赋新值:
我们为此提供了一个语法糖:
请注意,前一个绑定 five 的值仍然是 5,因为它得到了 ref 包装里的内容,而不是 ref 本身。
注意:你可能在上面的 JS 输出中看到,ref 分配了一个对象。不用担心,局部非导出的 ref 分配会被优化掉。
技巧和诀窍
在使用 ref 之前,要知道你可以使用覆盖 let 绑定来实现轻量级的局部“可变性”。