我正在调试一个错误,发现它undefined
已附加到一个列表中,这导致了后来的崩溃。
我预计使用++
运算符附加列表以外的内容会导致崩溃。但这对于undefined
. 这是一个例子:
1> [1,2,3] ++ undefined.
[1,2,3|undefined]
尽管它没有崩溃,但该列表不再具有全部功能:
1> L = [1,2,3] ++ undefined.
[1,2,3|undefined]
2> L ++ [4].
** exception error: bad argument
in operator ++/2
called as [1,2,3|undefined] ++ [4]
为什么会这样?这与erlang中列表的底层实现有关吗?