函数

基本定义

最简单的函数定义是:

(defn f1 [x y]
  (+ x y))
; #'cljs.user/f1

借助匿名函数也可以函数定义, 不过这样可能损失一些静态检查的好处:

(def f2 (fn [x y]
  (+ x y)))
; #'cljs.user/f2

如果函数参数个数不确定, 可以用 & 把后边的参数合并成一个 list:

(defn f3 [x1 & xs]
  (print x1)
  (print xs))
; #'cljs.user/f3

根据参数个数的不同, 函数可以被重载:

(defn f4 [x] (+ x 1))
; #'cljs.user/f4
(defn f4 [x y] (+ x y 1))
; #'cljs.user/f4

也可以简写在一个表达式当中:

(defn f4
  ([x] (+ x 1))
  ([x y] (+ x y 1)))
; #'cljs.user/f4

调用函数

函数调用比较简单, 注意有个 apply 函数可以改变参数的传递方式:

(f1 1 2)
; 3
(apply f1 (list 1 2))
; 3

results matching ""

    No results matching ""