从具有条件的循环中将项添加到列表中

Ale*_*dro 2 elixir

我正在尝试将一些项添加到列表中,但仅在条件为真时才添加.我的函数实际上是在条件为假时存储空数据.

hit_list = for {_mob, %{id: id}} <- get_mob_list(state.mobs) do
  if condition do
    id
  end
end
Run Code Online (Sandbox Code Playgroud)

输出:

[null, "2"]
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 5

你可以这样做for:

hit_list = for {_mob, %{id: id}} <- get_mob_list(state.mobs), condition do
  id
end
Run Code Online (Sandbox Code Playgroud)

例如:

iex(1)> for i <- 1..10, i + 1 < 4, do: i
[1, 2]
Run Code Online (Sandbox Code Playgroud)