在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))
我理解:fin是新值。但为什么要用它来代替数字?
我搜索了文档:fin正在使用,除了Koans之外无法找到它的用途。
感谢。
答案 0 :(得分:8)
在Clojure中,冒号会生成一个叫做关键字或键的东西:
user=> (type :xyz)
clojure.lang.Keyword
键在地图中使用,因为它们很容易检查相等性并转换为字符串。您可以看到,稍后在同一文件中,:fin
再次用于检查相等性:
(= :fin (do
(compare-and-set! __ __ __)
@atomic-clock)))