昨天,Rich将Clojure的“新”分支放到了master中。我们现在正在拥抱定义类型和定义协议的美。当然,我来自Haskell,我非常想像在Haskell中那样定义类型,这几乎适用于除一次性元组之外的所有类型,但我不认为它在Clojure世界中是这样工作的;)。在Clojure的常见错误线程中,一个人提到,过度使用结构是他第一次开始的时候犯下的一个错误,来自OOP。由于deftype看起来类似于structs,我想知道同样的事情是否也适用于这里。
所以,我的问题是:什么时候是使用deftype的好时机?
发布于 2010-01-12 23:44:09
deftype的一个亮点是性能。协议的方法在deftype上是非常快的。另外,deftype可能有原始字段,所以在处理数字时不再装箱...
另一个领域可能是Java互操作,因为deftype可以实现具有命名类的接口(如果AOT编译)。
一般而言,使用协议定义抽象并使用deftype实现它们是基本思想。
Rich在这里详细介绍了他的动机:http://www.assembla.com/wiki/show/clojure/Datatypes
https://stackoverflow.com/questions/2048240
复制相似问题