Elixir编程:控制流、流与数据抽象详解
1. 控制流中的推导式与流
在编程中,推导式是一种强大的工具。推导式的过滤器会对输入可枚举对象的每个元素进行评估,只有当过滤器返回 true 时,才会调用块并收集结果;否则,推导式会继续处理下一个元素。推导式能对输入的可枚举对象进行优雅的转换,虽然使用 Enum 函数(如 Enum.reduce/3 )也能实现类似功能,但使用推导式时代码通常更优雅,特别是在需要执行多个可枚举对象的笛卡尔积或遍历嵌套集合以生成扁平结果时。
需要注意的是,推导式也可以遍历二进制数据,不过其语法有所不同,详细信息可查看官方文档: https://mng.bz/xj2d 。
流是一种特殊的可枚举对象,对于对任何可枚举对象进行惰性组合操作非常有用。下面我们通过一个例子来说明标准 Enum 函数的不足。假设有一个员工列表,需要打印每个员工,并在前面加上他们在列表中的位置:
iex(1)> employees = ["Alice", "Bob", "John"]
["Alice", "Bob", "John"]
iex(2)> Enum.with_index(employees)
[{"Alice", 0}, {"Bob", 1}, {"John", 2}]
iex(3)> employees
|> Enum.with_index()
|>
超级会员免费看
订阅专栏 解锁全文

54

被折叠的 条评论
为什么被折叠?



