記錄規格

你可以按如下方式對記錄進行規範:

(clojure.spec/def ::name string?)
(clojure.spec/def ::age pos-int?)
(clojure.spec/def ::occupation string?)

(defrecord Person [name age occupation])

(clojure.spec/def ::person (clojure.spec/keys :req-un [::name ::age ::occupation]))

(clojure.spec/valid? ::person (->Person "john doe" 25 "programmer"))
;;=> true

(clojure.spec/valid? ::person (->Person "john doe" "25" "programmer"))
;;=> false

在將來的某個時刻,可能會引入讀者語法或內建支援,以通過記錄的名稱空間來限定記錄鍵。這種支援已經存在於地圖中。