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
407 声望103 粉丝

尽量减少神经质的时间