Erlang 宏(Macros)

宏通常用于內(nèi)聯(lián)代碼替換。在Erlang中,宏是通過以下語句定義的。

  • - define(Constant, Replacement)。

  • -define(Func(Var1, Var2,.., Var), Replacement).

以下是使用第一種語法的宏示例-

在線示例

-module(helloworld). 
-export([start/0]). 
-define(a,1). 

start() -> 
   io:fwrite("~w",[?a]).

從上面的程序中,您可以看到使用'?'擴(kuò)展了宏。象征。常量將替換為宏中定義的值。

上面程序的輸出將是-

輸出結(jié)果

1

使用函數(shù)類的宏的示例如下-

在線示例

-module(helloworld). 
-export([start/0]). 
-define(macro1(X,Y),{X+Y}). 

start() ->
   io:fwrite("~w",[?macro1(1,2)]).

上面程序的輸出將是-

輸出結(jié)果

{3}

以下附加語句可用于宏-

  • undef(Macro)-未定義宏;此后,您將無法調(diào)用宏。

  • ifdef(Macro) ?僅在定義了宏的情況下才評(píng)估以下各行。

  • ifndef(Macro) ?僅當(dāng)未定義宏時(shí)才評(píng)估以下幾行。

  • else?在ifdef或ifndef語句之后允許。如果條件為假,則評(píng)估else后面的語句。

  • endif ?標(biāo)記ifdef或ifndef語句的結(jié)尾。

使用上述語句時(shí),應(yīng)按照以下程序中所示的正確方式使用它。

-ifdef(<FlagName>).

-define(...).
-else.
-define(...).
-endif.
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清