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