搜索之后,我无法找到如何在erlang模块中获取参数类型。为了更清楚,这就是我想要做的事情:
erlang:loaded()
- >这将返回一个原子列表,它们是模块名称Module:module_info(exports)
- >这将返回一个元组列表,可能是:{function_name,number_of_parameters)一个例子:
application:load("1", 2, "3", {123, "2\"{[1234", 123}, ad, <<"asa]}\">>\", 2, 300:16>>).
输出:
Param列表:
"1" ---> type: string
2 ---> type: integer
"3" ---> type: string
{123, "2\"{[1234", 123}
---&gt;类型:tuple` ad ---> type: atom
<<"asa]}\">>\", 2, 300:16>> ---> type: binary
答案 0 :(得分:0)
我不知道这是可能的,你在Erlang中描述参数的方式是在代码中使用规范注释,但并非所有代码都有详细记录并使用如下规范:
-spec Module:Function(ArgType1, ..., ArgTypeN) -> ReturnType.
此外,函数可以采用不同的参数类型,并使用保护来对输入进行不同的处理。甚至可以在记录上使用语法糖来创建自定义类型或使用any()
。 Dialyzer是唯一可以帮助的东西,也许是检查dialyzer:plt_info(Plt)