1

elixir 里因为模式匹配的存在,在赋值多个变量时,我们一般使用匹配的方式,例如:

[a, b, c] = [1, 2, 3]

然而,如果我们在编译时并不知道右边列表的长度,应该如何匹配呢?在 elixir 标准库中为我们提供了 destructure/2 这个方便的宏:

destructure [a, b, c], [1, 2, 3, 4, 5]

自动匹配到前三个元素 [1, 2, 3]

如果右边的列表更短,则会自动填充上 nil:

destructure [a, b, c], [1, 2]

得到 a = 1, b = 2, c = nil


Ljzn
399 声望102 粉丝

网络安全;函数式编程;数字货币;人工智能