22
你可以解構一個函數參數,但仍然有原始的可用?我現在做的方式是在函數體內使用let
表單,但是我想知道是否有一種更簡潔的方法。Clojure函數的Destructure參數,同時保持原始值。
你可以解構一個函數參數,但仍然有原始的可用?我現在做的方式是在函數體內使用let
表單,但是我想知道是否有一種更簡潔的方法。Clojure函數的Destructure參數,同時保持原始值。
好像:as
作品的功能太:
與vector
(defn test [[x y :as v]]
{:x x :y y :v v})
(test [1 2 3 4])
=> {:x 1 :y 2 :v [1 2 3 4]}
與hash-map
(defn test2 [{x :x y :y :as m}]
{:x x :y y :m m})
(test2 {:x 1 :y 2 :z 3})
=> {:x 1 :y 2 :m {:x 1 :y 2 :z 3}}
看到這個了不起的博客文章:http://blog.jayfields.com/2010/07/clojure-destructuring.html
我相信我們,FN, defn等全部使用s ame解構語法。 – JohnJ
@JohnJ:是的,使解構語義一致。 – Ankur
@JohnJ這是「真實的」。起初我在博客文章中感到非常困惑,因爲它只使用了一些例子。 let和fn/defn的區別在於它使用綁定形式。 –