clojure.core/get 的实现如果其参数不是一个关联集合,则返回 nil。
这种行为可能会掩盖常见的编程错误,例如
(def a (atom {:a 1 :b 2}))
(:foo a) ; 忘记 deref a
;;=> nil
在对既不是 nil 也不是关联集合的东西调用 get 几乎肯定是一个错误,并且应该通过异常来表示。
CLJ-932 被接受为对 clojure.core/contains? 的类似增强。
*补丁:* 0003-CLJ-1107-Throw-exception-for-get-on-unsupported-type.patch
*方法:* 在 RT.getFrom 中使用 IllegalArgumentException 作为最后退出的情况,而不是返回 nil。
*另请参阅:* CLJ-969