【问题标题】:Can I use Clojure multimethods only on Java classes?我可以只在 Java 类上使用 Clojure 多方法吗?
【发布时间】:2011-01-01 20:06:45
【问题描述】:

我有点困惑我是否只能在由 Java 类表示的 clojure 结构上使用 clojure 多方法,或者我可以基于多方法来调度结构或其他属性?

【问题讨论】:

    标签: clojure multimethod


    【解决方案1】:

    构建在第一个或唯一参数的类上分派的多方法是很常见的。在这种情况下,“类”可能是一个 Java 类、一个记录(defrecord 生成一个 Java 类),甚至是一个内部 Clojure 类型,如 ISeq。

    您还可以在传递给函数的 args 的任意函数上分派。例如,您可以根据需要计算一个函数并在关键字上分派。

    【讨论】:

      【解决方案2】:

      您可以在参数的任意函数上调度多方法(该函数作为第二个参数传入defmultihttp://clojure.org/multimethods 提供了更多详细信息。

      【讨论】:

        【解决方案3】:

        您可以在您选择的任何函数上调度您的多方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-10-18
          • 2018-03-16
          • 1970-01-01
          • 2013-12-29
          • 1970-01-01
          • 2014-05-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多