问题 Clojure中的definterface和defprotocol之间的区别


除了缺乏文档之外,还有什么区别 definterface 和 defprotocol 在Clojure?


9277
2017-10-14 15:56


起源



答案:


根据 Clojure的喜悦

使用的优点 definterface 过度 defprotocol 受到限制   完全是因为前者允许原始类型   参数和回报。在未来的某个时刻,同样的优势   可能会扩展到[通过协议]生成的接口,所以使用    definterface 除非绝对,否则谨慎并且更喜欢协议   必要。


10
2017-10-14 18:04





我可能不完整的理解是 definterface 生成一个java代码可以实现的接口.class,以便创建适合传递给Clojure函数的类。

简而言之,协议比多方法更快,更集中地进行调度。你实际上已经在其他clojure代码使用的协议中运行代码。


3
2017-10-14 16:36