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

欢迎!有关此功能如何工作的更多信息,请参阅关于 页面。

+8
协议
我预期 `satisfies?` 即便是在通过元数据提供协议实现时也应正常工作,但这似乎并非如此


(defprotocol Foo :extend-via-metadata true (foo [x]))
(foo (with-meta [42] {`foo (fn [x] :boo)}))
;; => :boo

;; 但是 `satisfies?` 不工作
(satisfies? Foo (with-meta [42] {`foo (fn [x] :boo)}))
;; => false


*补丁*:0001-CLJ-2426-fix-satisfies-for-new-instance-based-protoc.patch
昨天遇到了这个问题。

2 答案

0

评论由:alexmiller

是否将元数据检查放在第二位而不是第一位会更有效?或者它实际上更快吗?

0
参考:https://clojure.atlassian.net/browse/CLJ-2426 (由 jumar 报告)
...