扩展"名称"用于自定义记录类型

时间:2016-09-13 01:22:03

标签: clojure

我有一张包含:name的记录。有没有办法告诉clojure.core/name如何从我的记录中提取:name

1 个答案:

答案 0 :(得分:8)

如果您能够更改defrecord声明,只需在那里实施clojure.lang.Named界面。

(defrecord MyRecord [name]
  clojure.lang.Named
  (getName [this]
    (:name this)))

(name (MyRecord. "Dan"))
;;=> "Dan""