繁体   English   中英

在erlang模块中查找参数类型

[英]find parameter types in an erlang module

搜索后,我找不到如何在erlang模块中获取参数类型。 更清楚地说,这就是我想要做的:

  • 1 /通过以下方式显示所有已加载的erlang模块: erlang:loaded() ->这将返回原子列表,这些原子是模块名称
  • 2 /通过以下方式显示模块的所有导出函数: Module:module_info(exports) ->这将返回一个可能是这样的元组列表:{function_name,number_of_parameters)
  • 3 /在上面建立的函数中显示参数类型->我被困在这里...

一个例子:

  • 输入: application:load("1", 2, "3", {123, "2\\"{[1234", 123}, ad, <<"asa]}\\">>\\", 2, 300:16>>).
  • 输出:

    • Module_Name:应用程序
    • Function_Name:加载
    • 参数数量:6
    • 参数列表:

      • "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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM