有人可以提供一个关于如何迭代列表但一次批量x的建议吗?
如果存在功能:
["1","2","3","4","5","6","7","8","9","10"].step(5)|> IO.puts
Run Code Online (Sandbox Code Playgroud)
会产生两次迭代:
12345
678910
我相信Stream.iterate/2是解决方案但是我给出一个数组的尝试并没有证明是有利可图的.
Gaz*_*ler 11
Enum.chunk/2(或Stream.chunk/2)会将列表分解为x个元素的子列表:
iex> [1,2,3,4,5,6,7,8,9,10] |> Enum.chunk(5)
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
Run Code Online (Sandbox Code Playgroud)
然后,您可以对每个列表执行操作,例如:
iex> ["1","2","3","4","5","6","7","8","9","10"]
|> Enum.chunk(5)
|> Enum.each(fn x -> IO.puts x end)
12345
678910
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |