関数パラメーターを分解しても、元のパラメーターを使用できるようにすることはできますか? 今のやり方let
は関数本体の中でフォームを使っているだけなのですが、もっと簡潔なやり方がなかったのでしょうか。
質問する
10188 次
1 に答える
32
: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
于 2012-09-25T01:54:52.967 に答える