概述
解构允许你将各种对象的数据提取到不同的变量中。在下面的每个示例中,每个变量都分配给它自己的字符串(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
,否则忽略额外的值 - 解构的一个常见且有用的用途是函数参数
- 你可以将不需要的部分分配给一个抛弃变量(通常为:
_
)