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


Elixir Enum.filter用法及代碼示例

Elixir語言中 Enum.filter 相關用法介紹如下。

用法:

filter(enumerable, fun)
@spec filter(t(), (element() -> as_boolean(term()))) :: list()

過濾 enumerable ,即僅返回那些 fun 為其返回真值的元素。

另請參閱 reject/2 ,它丟棄函數返回真值的所有元素。

例子

iex> Enum.filter([1, 2, 3], fn x -> rem(x, 2) == 0 end)
[2]

請記住,filter 不能同時過濾和轉換元素。如果您想這樣做,請考慮使用 flat_map/2 。例如,如果要轉換所有表示整數的字符串並一次性丟棄無效的:

strings = ["1234", "abc", "12ab"]

Enum.flat_map(strings, fn string ->
  case Integer.parse(string) do
    # transform to integer
    {int, _rest} -> [int]
    # skip the value
    :error -> []
  end
end)

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Enum.filter(enumerable, fun)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。