Clojure中的多态性
假设我有一堆Clojure数据结构,所有类型都相同 - 例如defrecord定义的对象类型。
在这些结构中获得多态行为的最佳方法是什么?
在结构中嵌入一个函数以便我可以执行以下操作是一种好习惯:
((:my-method my-object) param1 param2)
或者,还有更好的方法?
没有找到相关结果
已邀请:
2 个回复
末钉蹈泰唬
然后你可以根据类型进行调度
您需要在创建对象元数据时添加:type,
或者我没有尝试过这个,但是因为协议和记录会在你根据该名称发送的幕后创建java类。
了驳
在上面,
和
都实现了协议
定义的
函数,但它们各自的方式不同。当调用
函数时,它会调度第一个arg的类型。