3
如果我定義了以下記錄:Clojure的規範和記錄構造
(defrecord Person [name id])
及以下:
(s/def ::name string?)
(s/def ::id int?)
(s/def ::person (s/keys :req-un [::name ::id]))
我怎麼能保證你不能創建不符合一個人到::人的規格?換句話說,下面應該拋出一個異常:
(->Person "Fred" "3")
我想:
(s/fdef ->Person :ret ::person)
但調用:
(->Person "Fred" "3")
不會引發異常。
但是:
(s/conform ::person (->Person "Fred" "3"))
不會產生預期:
:clojure.spec/invalid
感謝