elixir 里由于模式匹配的存在,在赋值多个变量时,咱们通常使用匹配的方式,例如:code
[a, b, c] = [1, 2, 3]
然而,若是咱们在编译时并不知道右边列表的长度,应该如何匹配呢?在 elixir 标准库中为咱们提供了 destructure/2
这个方便的宏:编译
destructure [a, b, c], [1, 2, 3, 4, 5]
自动匹配到前三个元素 [1, 2, 3]
。变量
若是右边的列表更短,则会自动填充上 nil:elixir
destructure [a, b, c], [1, 2]
获得 a = 1, b = 2, c = nil
。co