簡體   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