0 elixir
我想用 3 替换所有出现的 2。我想在不使用索引值的情况下执行此操作,因为这将是硬编码。到目前为止我所拥有的是:
list=[1,2,3,4,2,34,2]
replace_at(list, index, value)
Enum.each list, fn(x) ->
if x==2 do
replace_at(list, index, 3)
end
Enum.each list, fn(x) ->
IO.puts x
end
Run Code Online (Sandbox Code Playgroud)
在 Elixir 中,您没有数组,而是链表。如果您只是想用 3 替换 2 的所有出现,您可以使用模块的map函数,Enum如下所示:
iex(1)> Enum.map(list, fn x -> if x == 2, do: 3, else: x end)
[1, 3, 3, 4, 3, 34, 3]
Run Code Online (Sandbox Code Playgroud)
您还可以使用模式匹配:
iex(1)> Enum.map(list, fn
...(1)> 2 -> 3
...(1)> x -> x
...(1)> end)
Run Code Online (Sandbox Code Playgroud)