多方法表现

Tim*_*dge 6 clojure

使用多种方法的性能有何影响?如果我有2个具有相同名称的函数,并且相同数量的参数只有类型(list与int)不同,那么我的性能会受到很大影响吗?

换句话说,最好为我的矢量添加功能命名:"add-vector"或将其保留为"add"或"+"?

(为简单起见,我们忽略了我可能重新定义内置函数的问题,比如"+").

san*_*inc 9

使用多方法会有性能成本,但除非绝对必要,否则如果它们是最佳抽象,则应继续使用它们.

也就是说,Clojure 1.2的协议为某些用例提供了多种方法的本地速度替代方案,特别适用于以前可能使用基于类型的调度的多方法的情况.