當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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