【发布时间】:2014-08-16 17:23:53
【问题描述】:
可以在记录(以及相关的类型)中实现协议。但是,我想知道如果这些特定功能只实现一次(即仅用于一种记录类型)或者所有记录都使用该特定功能的相同实现,是否有任何理由这样做。
为了说明,假设我有 Player 的记录。
(defrecord Player [x y hp inventory])
现在我有机会实现更新协议;
(defprotocol Update
(update [this world]))
(defrecord Player [x y hp inventory]
Update
(update [this world] this))
或者,我可以为此编写一个单独的函数。
(defn update [player world] player)
两者之间有什么区别,效率还是其他方面?
【问题讨论】: