1

为地图或记录制定规范的方式是否比官方规范指南中的方式更简洁?

(defrecord Person [first-name last-name email phone])
(s/def ::first-name string?)
(s/def ::last-name string?)
(s/def ::email ::email-type)
(s/def ::person (s/keys :req-un [::first-name ::last-name ::email]
                        :opt-un [::phone]))

理想情况下,如果我能写一些类似的东西会很好

(defrecord Person [first-name last-name email phone])
(s/def ::person (s/keys :req-un [:first-name string?
                                :last-name string?
                                :email ::email-type]
                        :opt-un [:phone]))
4

1 回答 1

5

Clojure 团队有意识地决定单独指定值和键集(您可以阅读讨论以获得更长的解释)。您的建议被认为是 clojure.spec 中的反模式,并且故意使其成为不可能

如果您想要单语句嵌套结构规范,最好使用Plumatic Sc​​hema

于 2017-02-05T19:20:49.100 回答