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 报告)
...