gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:58:31 25 4
gpt4 key购买 nike

昨天,Rich 将 Clojure 的"new"分支拉入 master。我们现在正在拥抱 deftype 和 defprotocol 之美。当然,来自 Haskell 的我很想像在 Haskell 中那样定义类型,这几乎适用于除了一次性元组之外的所有类型,但我认为在 Clojure 世界中不会这样工作;)。在 Clojure 的常见错误线程中,有人提到过度使用结构是他刚开始时犯的一个错误,来自 OOP。由于 deftypes 似乎与结构相似,我想知道是否同样适用于那里。

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

最佳答案

一区deftype闪耀的是性能。协议(protocol)的方法在定义类型上非常快。 deftype 也可能有原始字段,因此在处理数字时不再装箱......

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

一般来说,基本思想是用协议(protocol)定义抽象并用 deftype 实现它们。

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

关于clojure - 我应该什么时候在 Clojure 中使用 deftype?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2048240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com