【发布时间】:2021-08-07 12:38:02
【问题描述】:
如何在 Elixir 中进行nil 列表的安全串联?
我已经通过++提供了一些有关情况和响应的内联示例
看起来nil 在连接时被视为特殊实体。
为什么会这样?
# Append two empty list ✅
iex(1)> [] ++ []
[]
# Append empty list to nil ❌
iex(2)> [] ++ nil
nil # Result should be []
# Append non empty list to nil ❌
iex(3)> [1] ++ nil
[1 | nil] # Result should be [1]
# Append non empty list to nil and enumerate ❌
iex(5)> a = [1, 2] ++ nil
[1, 2 | nil]
iex(6)> Enum.each(a, fn p -> IO.puts(p) end)
1
2
** (FunctionClauseError) no function clause matching in Enum."-each/2-lists^foreach/1-0-"/2
# Add more lists with nil ❌
iex(5)> [1, 2] ++ nil ++ []
** (ArgumentError) argument error
【问题讨论】:
标签: list elixir concatenation