elixir - 使用 Stream 后是否需要使用 Enum?
问题描述
我有很多数据,我正在使用Stream.map/2
它来获得结果。所以在使用这个功能后,我得到了这个结果
#Stream<[
enum: #Function<51.58486609/2 in Stream.resource/3>,
funs: [#Function<47.58486609/1 in Stream.map/2>]
]>
现在,如果我映射结果并只返回值,那么它将返回每个值两次。
如果我使用Enum.map
而不是Stream.map
我得到结果。既然我不能Enum
在这里使用函数,我该怎么办?
结果将是地图列表
解决方案
简单的答案是肯定的,正如这里所说: https ://elixir-lang.org/getting-started/enumerables-and-streams.html#streams
流不是生成中间列表,而是构建一系列计算,仅当我们将底层流传递给 Enum 模块时才会调用这些计算。在处理可能是无限的大型集合时,流非常有用。
推荐阅读
- python - Python 正则表达式匹配无法匹配 *
- javascript - Neovim:如何修复 HTML 中 JavaScript 的缩进?
- ssl - 无法通过 SSL 连接到代理
- c# - 使用 AutoMapper 映射 .NET 5 不受支持
- python - 在 Windows 中使用 tox 运行多个版本的 Python
- google-sheets - 如何在谷歌表格上按当前月份和年份有条件地格式化一行?
- sql-server - 只返回第一行的存储过程
- nginx - 质询期间的代码服务器 Certbot 错误
- java - 将 base64 上传到 azure 文件共享
- google-sheets - 获取 Google 表格中列表项的百分比分布