Elixir/Erlang:变量列表与许多其他列表合并时出错

Posted

技术标签:

【中文标题】Elixir/Erlang:变量列表与许多其他列表合并时出错【英文标题】:Elixir/Erlang: Error when a variable list merge with many other lists 【发布时间】:2021-10-05 20:51:24 【问题描述】:

我有这个功能:

defp get_list(map, l, i) do

    list = l ++ map

其中 ma​​p 是每次重复出现的新列表,因此 l 与其合并并归属于 list

它适用于少量页面,问题是当大量页面被合并时,在列表被添加到 list 之后的一段时间,会出现以下错误:

(ArgumentError) 参数错误 :erlang.++([0.33966522437570745,...]) (api_sort 0.1.0) lib/api_sort.ex:18: ApiSort.get_list/3

【问题讨论】:

第 18 行是哪一行?是list = l ++ map的那个吗? 嗨。你确定论点在类型方面总是正确的吗?如果参数类型不是 BEAM 所期望的,则可以引发 Argument error 是的,第 18 行就是这一行!好吧,thr 格式总是一样的,两个列表 [] 合并成一个更大的列表。 【参考方案1】:

问题是来自站点的一些“地图”不是列表类型,即使它们都在 [] 之间,所以我设置了一个条件 is_list(map),它可以防止这些虚假列表导致错误。

【讨论】:

以上是关于Elixir/Erlang:变量列表与许多其他列表合并时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Elixir/Erlang 中的(本地)Mnesia 实例上实现最佳写入性能

如何在Elixir中获取变量的内存位置?

Elixir/Erlang 并发状态访问

Elixir/Erlang

Elixir/Erlang 中的命名函数是不是有等效于 __MODULE__ 的方法?

将本地 Elixir/Erlang 连接到 Docker 容器内正在运行的应用程序