除了缺乏文档之外,还有什么区别 definterface 和 defprotocol 在Clojure?
除了缺乏文档之外,还有什么区别 definterface 和 defprotocol 在Clojure?
根据 Clojure的喜悦:
使用的优点
definterface过度defprotocol受到限制 完全是因为前者允许原始类型 参数和回报。在未来的某个时刻,同样的优势 可能会扩展到[通过协议]生成的接口,所以使用definterface除非绝对,否则谨慎并且更喜欢协议 必要。
我可能不完整的理解是 definterface 生成一个java代码可以实现的接口.class,以便创建适合传递给Clojure函数的类。
简而言之,协议比多方法更快,更集中地进行调度。你实际上已经在其他clojure代码使用的协议中运行代码。