如何指定自定义指定地图的向量

时间:2019-03-26 17:30:09

标签: clojure clojure.spec

我有一个名为::cell的自定义地图的规范,

(s/def ::attr-1 int?)
(s/def ::attr-2 int?)
(s/def ::cell :req-un [::attr-1 ::attr-2])

现在,我想要另一个仅由这些::grid映射组成的自定义矢量的规范::cell。例如,网格可能看起来像这样:

(let grid [{:attr-1 11, :attr-2 12} {:attr-1 21 :attr-2 22}])

是否可以使用::cell的规范为此要求创建规范?

(s/def ::grid ???)

1 个答案:

答案 0 :(得分:2)

您可以使用tuple

(s/def ::grid (s/tuple ::cell ::cell ::cell))

coll-of指定种类和数量:

(s/coll-of ::cell :kind vector? :count 3)