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