2024 年 Clojure 状态调查! 分享您的想法。

欢迎!请参阅 关于 页面获取更多有关如何使用本站的信息。

0
Spec

函数 clojure.spec.test.alpha/check 会自动忽略不可检查的符号。对我来说这看起来是一个反直观的行为,因为我预期当我对一个没有 spec(例如拼写错误)的符号调用 check 时,它会失败。

check 的定义如下:

`
(defn check
([] (check (checkable-syms)))
([sym-or-syms] (check sym-or-syms nil))
([sym-or-syms opts]

(->> (collectionize sym-or-syms)
     (filter (checkable-syms opts))
     (pmap
      #(check-1 (sym->check-map %) opts)))))

`

在我看来,似乎可以将 (filter (checkable-syms opts)) 送到无参数版本中。

3 个答案

0

评论者:[email protected]

附加 clj-2472-1.patch。它保留向后兼容性,使其略微复杂。

0

评论者:[email protected]

对补丁进行了小的修改(使用 'when' 而不是 'if')。该解决方案的想法是引入一个新的选项 :assert-checkable,它断言提供的符号是可检查的。

0
...