2024 年 Clojure 状况调查中分享您的想法!

欢迎!请在关于页面获取更多关于这个功能的信息。

0
记录和类型

我想在不定义协议的情况下创建记录的方法
(defprotocol ComponentProtocol
(view [x])
(render [x]))

(defrecord Component [...]
ComponentProtocol
(view [x] ...)
(render[x] ...))

=> 取而代之,按照以下方式定义记录

(defrecord Component [...]
(view [x] ...)
(render [x] ...))

致敬
-Taoufik

1 答案

0

据我所知,这是不可能的。您总是不得不实现一个接口或协议。如果您不想用协议,您可以创建一个使用 definterface 的接口。

这是正确的,这是设计意图的一部分,旨在引导您避免面向对象的“任意 API”。我们已经有一个机制来创建独立的方法 - 函数。
https://clojure.org/reference/datatypes 这里的相关文档解释了这里的动机吗
...