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 Kernel.defexception用法及代码示例
- Elixir Kernel.defmodule用法及代码示例
- Elixir Kernel.defmacro用法及代码示例
- Elixir Kernel.defdelegate用法及代码示例
- Elixir Kernel.defguard用法及代码示例
- Elixir Kernel.defoverridable用法及代码示例
- Elixir Kernel.defstruct用法及代码示例
- Elixir Kernel.defp用法及代码示例
- Elixir Kernel.def用法及代码示例
- Elixir Kernel.div用法及代码示例
- Elixir Kernel.SpecialForms.case用法及代码示例
- Elixir Kernel.round用法及代码示例
- Elixir Kernel.left / right用法及代码示例
- Elixir Kernel.put_in用法及代码示例
- Elixir Kernel.tl用法及代码示例
- Elixir Kernel.left - right用法及代码示例
- Elixir Kernel.tuple_size用法及代码示例
- Elixir Kernel.to_charlist用法及代码示例
- Elixir Kernel.base ** exponent用法及代码示例
- Elixir Kernel.left !== right用法及代码示例
- Elixir Kernel.if用法及代码示例
- Elixir Kernel.spawn_monitor用法及代码示例
- Elixir Kernel.to_string用法及代码示例
- Elixir Kernel.length用法及代码示例
- Elixir Kernel.first..last用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Kernel.destructure(left, right)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。