Как я могу использовать именованные параметры в ClojureScript? - PullRequest
4 голосов
/ 03 января 2012

В ближайшем будущем я могу использовать defnk для получения именованных параметров.Как я могу добиться того же в ClojureScript?

1 Ответ

10 голосов
/ 03 января 2012

Функция именованных аргументов в ClojureScript такая же, как и в Clojure:

(defn f [x & {:keys [a b]}] 
  (println (str "a is " a " and b is " b)))

(f 1)
; a is  and b is 

(f 1 :a 42)
; a is 42 and b is 

(f 1 :a 42 :b 108)
; a is 42 and b is 108

Если вы хотите использовать значения по умолчанию, измените оригинал на:

(defn f [x & {:keys [a b] :or {a 999 b 9}}]
  (println (str "a is " a " and b is " b)))

(f 1)
; a is 999 and b is 9

Это связано схороший ответ для Clojure - именованные аргументы

...