- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有时我得到的是 badarg
而不是 function_clause
但我看不到确定将要出现哪一个的规则。
据我所知,function_clause
在没有函数的实现与给定参数匹配时抛出。关于 badarg
文档说
The argument is of wrong data type, or is otherwise badly formed.
这似乎被 function_clause
条件覆盖了......
例如
lists:flatten(3).
抛出子句错误,而类型肯定不匹配。
最佳答案
函数子句是具有不同参数模式/守卫的定义的一部分,如
func({X, Y}) -> ...;
func(X) when X > 10 -> ...;
func(_) -> ...
function_clause
表示它们都不匹配。还有类似的if_clause
和case_clause
。对于具有单个参数的 flatten
,有 only one clause
flatten(List) when is_list(List) ->
do_flatten(List, []).
它与 3
不匹配,这就是您获得 function_clause
的原因。
所以
Sometimes I get badarg instead of function_clause but I cannot see the rule that would determine which one is going to appear
这基本上是一个实现细节,只有在调试该函数的实现时才应该关心。
关于exception - Erlang 中的 function_clause 和 badarg 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57235420/
在开始之前,我已经 checkout Handle badarg in Erlang 但是我的未定义检查仍然没有成功,所以我删除了它们。 我正在构建一个虚拟银行流程,当客户对银行流程进行余额查询检查时
当尝试从 DynamicSupervisor 启动我的进程时,我收到以下错误: {:error, {:EXIT, {:badarg, [ {:erlang, :apply,
我开始学习 Elixir,这也是我的第一个动态语言,所以我真的迷失在没有类型声明的函数上。 我正在尝试做的事情: def create_training_data(file_path, indices
我正在尝试学习 Erlang,但在向另一个节点发送消息时遇到问题。该程序只是一个非常简单的乒乓球,应该像这样工作。我在节点 m1@ASUS-N55SF 上启动一个程序。它创建了一个进程,并在节点 m2
我是 Erlang 的新手,当我尝试将二进制文件转换为字符串时遇到 badarg 错误,如下所示。 Prefix = binary:bin_to_list(wh_json:get_ne_value(>
本文整理了Java中org.apache.hadoop.ha.ZKFailoverController.badArg()方法的一些代码示例,展示了ZKFailoverController.badArg
有时我得到的是 badarg 而不是 function_clause 但我看不到确定将要出现哪一个的规则。 据我所知,function_clause 在没有函数的实现与给定参数匹配时抛出。关于 bad
我被 Joe Armstrong 编写的《Programming Erlang》(第二版)的第一个编程练习所困扰。第二章介绍了一个在文件服务器及其客户端本地运行的简短程序。该示例仅允许客户端列出并从服
我是一名优秀的程序员,十分优秀!