2011-10-14 33 views

回答

9

根據Clojure的的喜悅:

使用definterface超過defprotocol被限制 完全是一個事實,即前者允許原始類型 參數和回報的優勢。在未來的某個時間點,相同的優勢 可能會擴展到協議生成的接口,所以請謹慎使用 definterface,並且首選協議,除非絕對需要 。

3

我可能不完全的理解是definterface產生一個接口.class,java代碼可以實現以創建適合傳遞給Clojure函數的類。簡而言之,協議是一種比多種方法更快,更集中的調度方式。您實際上已經在其他clojure代碼使用的協議中運行代碼。