2

編集

私はばかで、Clojure のドキュメントを読み違えているので、この質問は意味がありません。

私が持っているもの:

私はこのようなものを持っています:

(defprotocol Foo "doc" [foo bar]
  (Foo-bark [foo])
  (Foo-meow [foo])
  (Foo-other [foo]
     ... long
     multi
     line
     inline
     implementation))

私が好むもの:

(defprotocol Foo "doc" [foo bar]
  (Foo-bark [foo])
  (Foo-mewo [foo])
  (Foo-other [foo]))

(define Foo-other [foo]
   .. long
   multi
    line
   implementation)

質問

上記は可能ですか?そうでない場合、私がそれに到達できる最も近いものは何ですか?

4

1 に答える 1

4

defprotocol を使用して、その関数/メソッドの実装を提供することはできません。deftypeまたはreifyまたはextend/extend-typeを使用する必要があります(またはそれを行うにはクラスにドロップダウンします。ユースケースではextend、以前に定義された関数を参照してプロトコルを実装するために使用できます。

于 2012-05-24T07:19:57.093 に答える