具体而言,在以下情况下会发生什么:
(defn avg
([] 0)
([& args] (/ (reduce + args) (count args))))
(avg)
即,我可以依靠clojure总是返回0而不是归零吗?
答案 0 :(得分:6)
你可以依靠Clojure返回0而不是归零。但它并不首先匹配,首先服务:
(defn avg
([& args] (/ (reduce + args) (count args)))
([] 0))
(avg)
; 0
特定的arities优先于 rest 参数,如here所述。