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