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
。