在文档中说
上述所有示例都使用多方法系统
使用的全局层次结构
什么是全局层次结构?
答案 0 :(得分:1)
结帐core.clj并查找(def ^{:private true} global-hierarchy (make-hierarchy))
。 make-hierarchy
的文档字符串表示
“创建一个层次结构对象,以便与derive,isa等一起使用”
可以通过在macroexpand
上执行defmulti
来找出这与多方法系统的关系,这会导致调用clojure.lang.MultiFn
构造函数,方法名称为字符串,也可以调用var #'clojure.core/global-hierarchy
。您可以根据需要查看clojure.lang.MultiFn
来源,但这是多方法的“幕后”。