5

在 Clojure 的喜悦中,它指出:

如果需要不同的字段,您甚至可以重新定义记录,从而动态地为您提供 Java 的编译性能

有人可以告诉我这是如何完成的吗?

谢谢

4

1 回答 1

6

在第 9 章中,我们将介绍协议的定义以及对记录和类型FIXO的扩展。我们表明,可以动态地构建实现。事实上,我们从一条记录开始,扩展协议,然后定义一个类型并扩展到它。虽然我们不更改字段的数量,但我们确实更改了类型本身,并且一旦扩展,通过协议的所有调用都会解析为新类型(我们还必须将扩展重新定义为返回旧的基于记录的.TreeNodeTreeNodeFIXOTreeNodeFIXOTreeNodeFIXOFIXOFIXOnilNodeType

您可能不会在要部署的代码中执行此操作,但在试验时这是一种有用的技术。尝试浏览 FIXO 部分并随时检查类型。

于 2012-07-14T01:45:20.913 回答