在Clojure Koans中:fin用于atoms.clj.这是一个例子:
(def atomic-clock (atom 0))
"Atomic atoms are atomic"
(= 20 (do
(compare-and-set! atomic-clock 100 :fin)
@atomic-clock))
Run Code Online (Sandbox Code Playgroud)
我理解:fin是新的价值.但为什么要使用而不是数字呢?
我搜索了文档:fin正在使用,除了在Koans之外无法找到它的用途.
谢谢.
在Clojure中,冒号会生成一个称为关键字或键的东西:
user=> (type :xyz)
clojure.lang.Keyword
Run Code Online (Sandbox Code Playgroud)
键在地图中使用,因为它们很容易检查相等性并转换为字符串.您可以看到,稍后在同一文件中,:fin
再次用于检查相等性:
(= :fin (do
(compare-and-set! __ __ __)
@atomic-clock)))
Run Code Online (Sandbox Code Playgroud)