概述
解構允許你將各種物件的資料提取到不同的變數中。在下面的每個示例中,每個變數都分配給它自己的字串(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
,否則忽略額外的值 - 解構的一個常見且有用的用途是函式引數
- 你可以將不需要的部分分配給一個拋棄變數(通常為:
_
)