English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Macros de Erlang

Los macros se utilizan comúnmente para reemplazar código en línea. En Erlang, los macros se definen mediante la siguiente语句.

  • - define(Constante, Sustitución).

  • -define(Func(Var1, Var2,.., Var), Sustitución).

A continuación, se muestra un ejemplo de macro utilizando la primera sintaxis-

El siguiente es un ejemplo de uso de macros con clases de función

-Ejemplo 
-module(helloworld)./export([start 
-define(a,1). 
start() -> 
   io:fwrite("~w",[?a]).

En el programa superior, puede ver que se extendió el macro usando '?'. Los simbolos y constantes se reemplazarán con los valores definidos en el macro.

La salida del programa superior será-

Resultado de la salida

1

-

El siguiente es un ejemplo de uso de macros con clases de función

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

La salida del programa superior será-

Resultado de la salida

{3}

Las siguientes instrucciones adicionales se pueden usar en macros-

  • undef(Macro)-Macro no definido; a partir de ahora, no podrá llamar al macro.

  • ifdef(Macro) −Sólo se evalúan las siguientes líneas si se ha definido el macro.

  • ifndef(Macro) −Sólo se evalúan las siguientes líneas si no se ha definido el macro.

  • else−Permitido después de la instrucción ifdef o ifndef. Si la condición es falsa, se evalúan las instrucciones después de else.

  • endif −Marcar el final de la instrucción ifdef o ifndef.

Al usar las siguientes instrucciones, deben utilizarse de la manera correcta como se muestra en el siguiente programa.

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