Elixir 枚举接口

2023-12-15 13:50 更新

Elixir提供了可枚举性的概念,以及​Enum​模块来操作它们。我们已经学习了两个可枚举结构:列表和映射。

iex> Enum.map([1, 2, 3], fn x -> x * 2 end)
[2, 4, 6]
iex> Enum.map(%{1 => 2, 3 => 4}, fn {k, v} -> k * v end)
[2, 12]

Enum​模块提供了巨量的函数用于对可枚举体中的元素进行变换,排序,组合,筛选和检索。这是Elixir开发者最常用的模块之一。

Elixir也提供范围:

iex> Enum.map(1..3, fn x -> x * 2 end)
[2, 4, 6]
iex> Enum.reduce(1..3, 0, &+/2)
6

Enum模块中的函数只适用于对数据结构中的值进行枚举。对于特定操作,例如插入和更新特定的元素,你可能需要使用针对于某种数据类型的模块。例如,如果你想要往列表的指定位置插入指定元素,你应当使用List模块中的List.insert_at/3函数,因为将值插入到一个范围中是没有意义的。

我们说Enum模块中的函数是多态的,因为它们适用于多种数据类型。特别地,Enum模块中的函数适用于任何实现了Enumerable协议的数据类型。我们将在之后的章节讨论协议;现在我们将讲到一种特殊的枚举体,流。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号