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

欢迎!有关这个工作原理的更多信息,请参阅关于页面。

0
Spec

函数 clojure.spec.test.alpha/check 静默忽略不可检查的符号。这对我来说似乎有些反直觉,因为当我对一个符号调用 check 而该符号没有 spec(例如拼写错误)时,我期望它失败。

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
...