私は2つのパラメータに特化したmultimethodを持っている:defmethodキャッチすべて
(defmethod get-tag-type [::cat 0] [type tag] ::tiger)
(defmethod get-tag-type [::cat 1] [type tag] ::lion)
(defmethod get-tag-type [::cat 2] [type tag] ::jaguar)
(defmethod get-tag-type [::dog 0] [type tag] ::poodle)
(defmethod get-tag-type [::dog 1] [type tag] ::australian-shepherd)
(defmethod get-tag-type [::dog 2] [type tag] ::labrador-retriever)
しかし、時々、私が欲しい:型を有する
(defmulti get-tag-type (fn [type tag] [type tag]))
は異なるdefmethodがセットに呼び出し、グループに私を可能にいずれかのグループのすべてまたはデフォルトをキャッチします。他のグループが一致しない場合に呼び出されます。
(defmethod get-tag-type [::dog :default] ::mutt)
ただし、tag
が実際に:default
でないと、これは機能しません。
これを行うにはどうすればよいですか?
を私はdefmultiがそれを使用するdefmethodsについて知ることを望んでいません。 – Brigham