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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。