重新定义记录';Clojure的s字段
在《Clojure的欢乐》中,它指出: 如果需要不同的字段,甚至可以重新定义记录 动态提供Java的编译性能 有人能告诉我这是怎么做的吗重新定义记录';Clojure的s字段,clojure,Clojure,在《Clojure的欢乐》中,它指出: 如果需要不同的字段,甚至可以重新定义记录 动态提供Java的编译性能 有人能告诉我这是怎么做的吗 感谢在第9章中,我们将介绍FIXO协议的定义以及TreeNode记录和TreeNode类型的扩展。我们证明了构建FIXO的实现是可以动态完成的。事实上,我们从TreeNode记录开始,扩展FIXO协议,然后定义TreeNode类型,并将FIXO扩展到它。虽然我们不改变字段的数量,但我们确实改变了类型本身,一旦扩展,通过FIXO协议的所有调用都将解析为新类型(我
感谢在第9章中,我们将介绍
FIXO
协议的定义以及TreeNode
记录和TreeNode
类型的扩展。我们证明了构建FIXO
的实现是可以动态完成的。事实上,我们从TreeNode
记录开始,扩展FIXO
协议,然后定义TreeNode
类型,并将FIXO
扩展到它。虽然我们不改变字段的数量,但我们确实改变了类型本身,一旦扩展,通过FIXO
协议的所有调用都将解析为新类型(我们还必须将FIXO
扩展重新定义为nil
,因为它返回的是基于记录的旧节点类型
你可能不会在你将要部署的代码中这样做,但这在实验中是一种很有用的技术。试着遍历FIXO部分,并在运行时检查类型。@Kevin Page 191-:)你的意思是如何重新定义记录?是的,我不知道如何重新定义记录并为其指定不同的字段。只需使用defrecord
重新定义记录即可。