概述
解構允許你將各種物件的資料提取到不同的變數中。在下面的每個示例中,每個變數都分配給它自己的字串(a = a,b = b,&c。)
| 型別 | 例 | data/ 評論的價值 ** | 
|---|---|---|
| vec | (let [[a b c] data ...) | ["a" "b" "c"] | 
| 巢狀 vec | (let [[[a b] [c d]] data ...) | [["a" "b"] ["c" "d"]] | 
| map | (let [{a :a b :b c :c} data ...) | {:a "a" :b "b" :c "c"} | 
| - 替代方案: | (let [{:keys [a b c]} data ...) | 變數以鍵命名後。 | 
提示:
- 可以使用:or提供預設值 ,否則預設值為nil
- 使用 & rest在rest中儲存任何額外值的seq,否則忽略額外的值
- 解構的一個常見且有用的用途是函式引數
- 你可以將不需要的部分分配給一個拋棄變數(通常為:_)