【发布时间】:2011-03-19 15:21:41
【问题描述】:
我写了一个 Erlang 模块,并不是所有的内部函数都被直接调用。相反,有几个函数看起来像这样:
weird_func(Cmd, Args) ->
?MODULE:Cmd(Args).
这是一个简化的例子,但你明白了。 Erlang 编译器会发出关于未使用函数的警告,而实际上它们实际上是被使用的,只是没有直接使用。有什么方法可以抑制这些警告吗?理想情况下,我不想禁止所有此类警告,而是我想告诉 Erlang 编译器将一些特定函数视为特殊情况。
【问题讨论】:
-
以这种方式调用一个函数只有在它被导出后才有效。即使您使用
?MODULE,您实际上是在对其进行“外部”调用,这只是一个扩展为模块名称的预定义宏,并将函数名称作为参数传递。注:Args将是一个参数列表,被调用的函数只有一个参数。