在“Enum.each”循环中累积列表

时间:2016-08-28 18:33:52

标签: list elixir

我有一个接收字符串列表的方法,并生成一个单词列表列表。

Unable to find explicit activity class

此方法无法按预期工作,因为它始终返回空列表。

我认为这是因为变量阴影。

为了工作,这段代码应该被重写?

1 个答案:

答案 0 :(得分:3)

elixir中的变量是不可变的,因此您无法在循环中更改列表。有时它可能“看起来”变量是可变的,因为你可以重新分配它们,但这只会在同一范围内可见。

要获得所需的结果,可以按如下方式使用Enum.flat_map / 2。

def some(words) do
  Enum.flat_map words, fn word ->
    [["something", word], ["something else", word]]
  end
end