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

欢迎!请查看关于页面以了解更多关于此工作方式的详情。

+1 投票
编译器

目前 Clojure 中的 IFnIDererf 等实现为接口,但在 ClojureScript 中则是协议。
有任何计划解决这个问题不匹配吗?

1 答案

+1 投票

selected
 
最佳答案

Clojure 的实现是在协议存在之前创建的。ClojureScript 有更多经验教训和不同的性能基准。

没有计划更改当前实现,因为这需要在维护性能和与许多外部用户和接口实现者的向后兼容性方面付出很多努力。

让我们还提一下,接口分派更快,且接口支持基础类型。这只是在某些情境下很重要,但这些情境在基础设施层面上非常重要。
by
正确!尽管对于内联实现(记录/类型)的协议调度是接口调度,所以在这种情况下速度可以相同。
...