不稳定变量和vswap!在1.7版中添加,作为高效机制来实现对语言的非同步变异
鉴于其添加是出于性能考量,vswap!被实现为一个宏,而不是一个普通函数,以避免运行时对函数变量引用的解引用以及在多个参数情况下的可选应用开销。
然而这
-不是必要的
-破坏了volatile/atom swap!/vswap! reset!/vreset!之间的API并行性
-使得某些用例变得不可能(update-in表单中的vswaps!)
-由于swap!是一个函数,可能会引起混淆
事实上,该宏可以用具有:inline元数据的函数替换
这是一个严格增量更改,将确保vswap!的所有当前有效用法都不会改变,仍然由内联器展开,并且由于它现在是一个函数,它可以在HOF环境中使用,这并不罕见,在那里swap!被使用。