我在我的Clojure代码中到处使用refs然后我意识到我到处都在使用ref-set
。这是否会破坏STM变化的历史?或者我应该仅使用alter
和ref-set
初始化参考?
我不确定差异是否仅仅是语法上的,alter
最终会调用ref-set
。有人可以开导我吗?
答案 0 :(得分:4)
(alter aref f arg1 ... argn)
与
基本相同(ref-set aref (f @aref arg1 ... argn))
与reset!
和swap!
的原子类似。