【问题标题】:How is :fin being used?:fin 是如何使用的?
【发布时间】:2011-11-03 17:11:35
【问题描述】:

在 Clojure 中 Koans :fin 在 atom.clj 中使用。这是一个例子:

(def atomic-clock (atom 0))

  "Atomic atoms are atomic"
  (= 20 (do
          (compare-and-set! atomic-clock 100 :fin)
          @atomic-clock))

我知道 :fin 是新值。但是为什么用它而不是数字呢?

我已经搜索了正在使用的 :fin 的文档,除了 Koans 之外找不到它的用途。

谢谢。

【问题讨论】:

    标签: clojure


    【解决方案1】:

    在 Clojure 中,冒号表示关键字或键:

    user=> (type :xyz)
    clojure.lang.Keyword
    

    键用于映射,因为它们很容易检查是否相等并转换为字符串。您可以看到,稍后在同一个文件中,:fin 再次用于检查相等性:

    (= :fin (do
            (compare-and-set! __ __ __)
            @atomic-clock)))
    

    【讨论】:

    • 所以无非就是有人想要一个关键字来表示一个特定的值。我认为 :fin 有什么特别之处。谢谢。
    猜你喜欢
    • 2014-03-24
    • 1970-01-01
    • 2021-01-18
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    相关资源
    最近更新 更多