我有一个多方法:
(defmulti foo type)
(defmethod foo clojure.lang.Keyword [k] (name k))
Run Code Online (Sandbox Code Playgroud)
我想知道这样的事情是否可行:
(valid-dispatch? foo clojure.lang.Keyword)
;;=> true
Run Code Online (Sandbox Code Playgroud)
如果您想知道是否存在精确给定调度值的方法:
(contains? (methods foo) clojure.lang.Keyword)
Run Code Online (Sandbox Code Playgroud)
如果您想知道是否存在与给定调度值匹配的方法(考虑多方法使用的层次结构):
(get-method foo clojure.lang.Keyword)
Run Code Online (Sandbox Code Playgroud)
如果可用,后者返回实际方法,nil否则返回.
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |