除了缺少文檔,Clojure中definterface
和defprotocol
之間有什麼區別?Clojure中definterface和defprocolocol之間的區別
11
A
回答
9
根據Clojure的的喜悅:
使用
definterface
超過defprotocol
被限制 完全是一個事實,即前者允許原始類型 參數和回報的優勢。在未來的某個時間點,相同的優勢 可能會擴展到協議生成的接口,所以請謹慎使用definterface
,並且首選協議,除非絕對需要 。
3
我可能不完全的理解是definterface
產生一個接口.class,java代碼可以實現以創建適合傳遞給Clojure函數的類。簡而言之,協議是一種比多種方法更快,更集中的調度方式。您實際上已經在其他clojure代碼使用的協議中運行代碼。
相關問題
- 1. 混合definterface和defprocolocol
- 2. Clojure(3)和3之間的區別
- 3. Clojure中-toString與.toString之間的區別
- 4. Clojure協議和Groovy類別之間的區別
- 5. Clojure中[]和'[]之間的區別是什麼
- 6. Clojure中與本地變量和綁定之間的區別
- 7. Clojure中str和print-str之間的區別/關係
- 8. Clojure:列表和返回列表的函數之間的區別
- 9. Clojure在使用和需求之間的區別
- 10. 之間的〜/和的區別../
- 11. 如何在Clojure中使用definterface?
- 12. '#','%'和'$'之間的區別
- 13. {!!之間的區別!!}和{{}}
- 14. '+ ='和'= +'之間的區別?
- 15. 「。+」和「。+?」之間的區別
- 16. .eq之間的區別。和==
- 17. #。/和#之間的區別。 ./
- 18. !=和!之間的區別==
- 19. 「%〜dp0」和「。\」之間的區別?
- 20. | =和^ = css之間的區別
- 21. 之間的區別。和#
- 22. ==和case之間的區別?
- 23. 「**/* /」和「** /」之間的區別?
- 24. jQuery - '。'之間的區別和「#」
- 25. 「?1」和「?」之間的區別
- 26. `%in%`和`==`之間的區別
- 27. fmod和%之間的區別
- 28. 之間的區別:+和:+
- 29. Clojure,Scheme/Racket和Common Lisp之間有什麼區別?
- 30. clojure和clojurescript的區別?