Elixir 语言 列表与枚举操作

Elixir阿木 发布于 2025-06-19 15 次阅读


摘要:

Elixir 是一种功能强大的函数式编程语言,它以其简洁的语法和强大的并发特性而闻名。在 Elixir 中,列表和枚举是两种非常基础且常用的数据结构。本文将深入探讨 Elixir 中的列表与枚举操作,包括创建、遍历、过滤、映射、折叠等常见操作,并通过实际代码示例来展示这些操作的应用。

一、

在 Elixir 中,列表和枚举是处理数据的基本工具。列表是一种有序的集合,而枚举则是一种迭代器,可以用来遍历数据。掌握这些操作对于编写高效的 Elixir 代码至关重要。

二、列表操作

1. 创建列表

在 Elixir 中,可以使用方括号 `[]` 来创建一个空列表,或者使用 `[:a, :b, :c]` 来创建一个包含多个元素的列表。

elixir

创建空列表


empty_list = []

创建包含多个元素的列表


list = [:a, :b, :c]


2. 遍历列表

可以使用 `Enum.each/2` 函数来遍历列表,并对每个元素执行操作。

elixir

遍历列表并打印每个元素


Enum.each(list, fn element ->


IO.puts(element)


end)


3. 过滤列表

`Enum.filter/2` 函数可以用来过滤列表,只保留满足条件的元素。

elixir

过滤列表,只保留偶数


filtered_list = Enum.filter(list, fn x -> rem(x, 2) == 0 end)

IO.inspect(filtered_list)


4. 映射列表

`Enum.map/2` 函数可以将一个函数应用到列表的每个元素上,并返回一个新列表。

elixir

映射列表,将每个元素加1


mapped_list = Enum.map(list, fn x -> x + 1 end)

IO.inspect(mapped_list)


5. 折叠列表

`Enum.reduce/3` 函数可以将一个函数应用到列表的连续元素上,并返回一个单一的结果。

elixir

折叠列表,计算总和


sum = Enum.reduce(list, 0, fn x, acc -> x + acc end)

IO.inspect(sum)


三、枚举操作

1. 创建枚举

在 Elixir 中,可以使用 `Enum.to_list/1` 函数将一个枚举转换为列表。

elixir

创建枚举


enum = Enum.to_list(list)

遍历枚举


Enum.each(enum, fn element ->


IO.puts(element)


end)


2. 枚举操作

枚举操作与列表操作类似,但它们在内部使用迭代器,因此可以更高效地处理大型数据集。

elixir

过滤枚举,只保留偶数


filtered_enum = Enum.filter(enum, fn x -> rem(x, 2) == 0 end)

IO.inspect(filtered_enum)


3. 枚举与列表的转换

在需要时,可以使用 `Enum.to_list/1` 和 `List.to_enum/1` 函数在列表和枚举之间进行转换。

elixir

将列表转换为枚举


list_enum = List.to_enum(list)

遍历枚举


Enum.each(list_enum, fn element ->


IO.puts(element)


end)


四、总结

Elixir 中的列表和枚举操作是处理数据的基础,掌握这些操作对于编写高效的 Elixir 代码至关重要。本文通过实际代码示例介绍了创建、遍历、过滤、映射、折叠等常见操作,并展示了枚举与列表之间的转换。通过学习和实践这些操作,开发者可以更好地利用 Elixir 的强大功能。

五、扩展阅读

- 《Elixir 实战》

- 《Programming Elixir》

- Elixir 官方文档:https://elixir-lang.org/docs/stable/

注意:本文仅为概述,实际应用中可能需要根据具体情况进行调整和优化。