[英]find parameter types in an erlang module
搜索后,我找不到如何在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>>).
输出:
参数列表:
"1" ---> type: string
2 ---> type: integer
"3" ---> type: string
{123, "2\\"{[1234", 123}
--->类型:tuple` ad ---> type: atom
<<"asa]}\\">>\\", 2, 300:16>> ---> type: binary
我的问题在此得到解决: erlang使用正则表达式将字符串解析为数据类型
我不知道这是可能的,您在Erlang中描述参数的方式是在代码中使用规范注释,但并非所有代码都已被很好地记录在案,并使用如下规范:
-spec Module:Function(ArgType1, ..., ArgTypeN) -> ReturnType.
同样,函数可以采用不同的参数类型,并使用防护措施来对输入进行不同的处理。 甚至在记录上使用语法糖来创建自定义类型或使用any()
。 透析器是唯一可以帮助的事情,也许检查dialyzer:plt_info(Plt)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.