首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我什么时候应该在Clojure中使用deftype?

我什么时候应该在Clojure中使用deftype?
EN

Stack Overflow用户
提问于 2010-01-12 18:38:10
回答 1查看 3.9K关注 0票数 21

昨天,Rich将Clojure的“新”分支放到了master中。我们现在正在拥抱定义类型和定义协议的美。当然,我来自Haskell,我非常想像在Haskell中那样定义类型,这几乎适用于除一次性元组之外的所有类型,但我不认为它在Clojure世界中是这样工作的;)。在Clojure的常见错误线程中,一个人提到,过度使用结构是他第一次开始的时候犯下的一个错误,来自OOP。由于deftype看起来类似于structs,我想知道同样的事情是否也适用于这里。

所以,我的问题是:什么时候是使用deftype的好时机?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-12 23:44:09

deftype的一个亮点是性能。协议的方法在deftype上是非常快的。另外,deftype可能有原始字段,所以在处理数字时不再装箱...

另一个领域可能是Java互操作,因为deftype可以实现具有命名类的接口(如果AOT编译)。

一般而言,使用协议定义抽象并使用deftype实现它们是基本思想。

Rich在这里详细介绍了他的动机:http://www.assembla.com/wiki/show/clojure/Datatypes

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2048240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档