函数 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)) 可能更适合用在无参数的变体中。