如何在 Elixir 中 forEach

新手上路,请多包涵

你如何在 Elixir 中使用 forEach?在 JavaScript 中(大多数语言都有等效项),我可以遍历列表中的各个项目并做一些有副作用的事情,比如输出到控制台。

 [1,2,3].forEach(function(num) {
    console.log(num);
});

//=> 1
//=> 2
//=> 3

长生不老药有等价物吗?

原文由 williamcodes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 390
2 个回答

遍历集合通常使用 Enum 模块处理。 Enum.each/2 如果你想产生副作用,你正在寻找什么。

Enum.each/2 函数有两个参数:你的集合和一个在集合的每个成员上运行的函数。

像这样:

 iex(3)> Enum.each([1, 2, 3], fn x -> IO.puts x end)
1
2
3
:ok

我最近写了 一篇关于这个的博客文章,里面有更多的细节。这篇文章是 Elixir 和 Ruby 之间的比较,但同样的逻辑也适用于 JavaScript。

原文由 user3853034 发布,翻译遵循 CC BY-SA 4.0 许可协议

一种选择是使用理解:

 for item <- items do
  IO.inspect(item)
end

另一种选择是枚举:

 Enum.each items, fn(item) ->
  IO.inspect(item)
end

原文由 Voldy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题