函数 clojure.spec.test.alpha/check 静默忽略无法“检查”的符号。对我来说这似乎是反直觉的,因为我预计在调用 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)) 可能应该去到无参数变体。