阅读 133

Erlang 宏(Macros)

宏通常用于内联代码替换。在Erlang中,宏是通过以下语句定义的。

  • - define(Constant, Replacement)。

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

以下是使用第一种语法的宏示例-

在线示例

示例

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

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

从上面的程序中,您可以看到使用'?'扩展了宏。象征。常量将替换为宏中定义的值。

上面程序的输出将是-

输出结果

1

使用函数类的宏的示例如下-

在线示例

示例

-module(helloworld). 
-export([start/0]). 
-define(macro1(X,Y),{X+Y}). start() ->
   io:fwrite("~w",[?macro1(1,2)]).

上面程序的输出将是-

输出结果

{3}

以下附加语句可用于宏-

  • undef(Macro)-未定义宏;此后,您将无法调用宏。

  • ifdef(Macro) −仅在定义了宏的情况下才评估以下各行。

  • ifndef(Macro) −仅当未定义宏时才评估以下几行。

  • else−在ifdef或ifndef语句之后允许。如果条件为假,则评估else后面的语句。

  • endif −标记ifdef或ifndef语句的结尾。

使用上述语句时,应按照以下程序中所示的正确方式使用它。

-ifdef(<FlagName>).-define(...).-else.-define(...).-endif.


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐