2011-11-03 20 views
4

在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中找不到它的用途。

謝謝。

回答

8

在Clojure中,結腸,使一些所謂的關鍵字或關鍵:

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

鍵在地圖中使用,因爲它們很容易檢查平等和轉換爲字符串。你可以看到,後來在同一個文件,:fin在檢查再次用於平等:

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

所以它無非就是有人想一個關鍵字來表示一個特定的值。我認爲有一些特別的:fin。謝謝。 – octopusgrabbus