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

aha*_*ala 5 clojure

我看到一个Clojure函数被定义为

(defn toInt([i] (Integer. i)))
Run Code Online (Sandbox Code Playgroud)

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

 (defn toInt [i] (Integer. i)) 
Run Code Online (Sandbox Code Playgroud)

Mic*_*ent 11

第一个使用符号表示arity重载,但只包含一个arity.

两个arities的示例:

(defn my-add 
  ([x] (+ x 1))
  ([x y] (+ x y)))

(my-add 1) ;;=> 2
(my-add 1 2) ;;=> 3
Run Code Online (Sandbox Code Playgroud)

另请参阅http://clojure.org/functional_programming(搜索arity重载).