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


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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。