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 相关文档是否解释了这里的原因
欢迎来到 Clojure Q&A,您可以在此处提出问题并获得 Clojure 社区成员的回答。
...