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