我看到Clojure函数被定义为
(defn toInt([i] (Integer. i)))
为什么参数[i]
包含在括号中?这跟下面一样吗?有什么不同吗?
(defn toInt [i] (Integer. i))
答案 0 :(得分:11)
第一个使用符号表示arity重载,但只包含一个arity。
两个arities的例子:
(defn my-add
([x] (+ x 1))
([x y] (+ x y)))
(my-add 1) ;;=> 2
(my-add 1 2) ;;=> 3
另见http://clojure.org/functional_programming(搜索arity重载)。