3
在這個函數中:由於語法錯誤,Clojure後置條件無法執行 - 爲什麼?
(defn my-post
[a]
{:post (number? %)}
a)
的後置條件不執行(或至少,不引起斷言錯誤)。我現在知道它應該是:
(defn my-post
[a]
{:post [(number? %)]} ;; note the square brackets around the expression
a)
事實上,它的確能正常工作。
問題是,這失敗了,我花了一段時間找出錯誤。沒有語法錯誤,運行時異常。
我想了解Clojure用這段代碼做什麼,以瞭解Clojure爲什麼沒有抱怨。宏擴展?解構?如果代碼沒有看到方括號,代碼是否會消失?
請解釋一下什麼是這個職位的條件?我無法弄清楚這是什麼方法的目的。 –