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
其中 map 是每次重复出现的新列表,因此 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 实例上实现最佳写入性能