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](https://clojure.atlassian.net/browse/CLJ-2426)(由 jumar 报告)
...