2024 Clojure州调查!中分享您的想法。

欢迎!请参阅关于页面了解有关如何工作的更多信息。

0
记录和类型

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

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

=> 可以这样定义record

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

问候
-Taoufik

1 个回答

0

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

这是正确的,这也是设计意图的一部分,以引导您远离OO风格的“任意API”。我们已经有了一个创建独立方法的机制 - 函数。
by
https://clojure.org/reference/datatypes 这里相关的文档解释了这里的动机
欢迎来到Clojure问答社区,在这里您可以提问并从Clojure社区成员那里得到解答。
...