简体   繁体   English

对地图使用 clojure.spec

[英]Using clojure.spec for a map

I have the following map:我有以下地图:

(def gigs {:gig-01 {:id :gig-01
                    :title "Macaron"
                    :artist "Baher Khairy"
                    :desc "Sweet meringue-based rhythms with smooth and sweet injections of soul"
                    :img "https://res.cloudinary.com/schae/image/upload/f_auto,q_auto/v1519552695/giggin/baher-khairy-97645.jpg"
                    :price 1000
                    :sold-out false}
           :gig-02 {:id :gig-02
                    :title "Stairs"
                    :artist "Brentr De Ranter"
                    :desc "Stairs to the highets peaks of music."
                    :img "https://res.cloudinary.com/schae/image/upload/f_auto,q_auto/v1519552695/giggin/brent-de-ranter-426248.jpg"
                    :price 2000
                    :sold-out false}})

I'd like to create a spec for it, but I'm not sure how to define the key eg ":gig-01" any pointers?我想为它创建一个规范,但我不确定如何定义密钥,例如“:gig-01”有什么指针吗?

You could try:你可以试试:

(s/def ::gig-id
   (s/and keyword?
          (fn [x] (->> x name (re-matches #"gig-\d+")))))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM