当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Kernel.destructure用法及代码示例


Elixir语言中 Kernel.destructure 相关用法介绍如下。

用法:

destructure(left, right)
(宏)

解构两个列表,将右侧的每个术语分配给左侧的匹配术语。

与通过 = 的模式匹配不同,如果左右列表的大小不匹配,解构将停止而不是引发错误。

例子

iex> destructure([x, y, z], [1, 2, 3, 4, 5])
iex> {x, y, z}
{1, 2, 3}

在上面的示例中,即使右侧列表的条目比左侧列表多,解构也可以正常工作。如果右列表较小,则将剩余元素简单地设置为 nil

iex> destructure([x, y, z], [1])
iex> {x, y, z}
{1, nil, nil}

左侧支持您在匹配左侧使用的任何表达式:

x = 1
destructure([^x, y, z], [1, 2, 3])

仅当x 与右侧列表中的第一个值匹配时,上面的示例才有效。否则,它将引发 MatchError (就像 = 运算符会做的那样)。

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Kernel.destructure(left, right)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。