在Ruby中,可以使用splat来实现
[*1..5]
# => [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
如何在Elixir中完成?
我知道我可以使用,reduce但也许有一种更简单的方法?
Pat*_*ity 11
Elixir的Range就像Ruby一样.它们实现了Enumerable协议,因此在大多数情况下您不需要将它们转换为列表.范围通常与列表的行为相同:
iex> [1, 2, 3, 4, 5] |> Enum.map(fn x -> x*x end)
[1, 4, 9, 16, 25]
iex> 1..5 |> Enum.map(fn x -> x*x end)
[1, 4, 9, 16, 25]
Run Code Online (Sandbox Code Playgroud)
但是,如果您出于某种原因确实需要列表,可以通过Enum.to_list以下方式进行转换:
iex> 1..5 |> Enum.to_list
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |