括号中的Clojure`defn`参数与否

时间:2014-01-18 19:00:55

标签: clojure

我看到Clojure函数被定义为

(defn toInt([i] (Integer. i)))

为什么参数[i]包含在括号中?这跟下面一样吗?有什么不同吗?

 (defn toInt [i] (Integer. i)) 

1 个答案:

答案 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重载)。