English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Le macro sono generalmente utilizzate per sostituire il codice inline. In Erlang, le macro sono definite con la seguente istruzione.
- define(Constant, Replacement).
-define(Func(Var1, Var2,.., Var), Replacement).
Ecco un esempio di macro utilizzando la prima sintassi-
-module(helloworld). -export([start/0]). -define(a,1). start() -> io:fwrite("~w",[?a]).
Dal programma sopra, è possibile vedere che l'espansione '?' è stata utilizzata nella macro. Simbolo. Le costanti vengono sostituite con i valori definiti nella macro.
L'output del programma sopra sarà-
Risultato di output
1
Esempi di utilizzo delle macro di classe funzionale come segue-
-module(helloworld). -export([start/0]). -define(macro1(X,Y),{X+Y}). start() -> io:fwrite("~w",[?macro1(1,2)]).
L'output del programma sopra sarà-
Risultato di output
{3}
Le seguenti istruzioni aggiuntive possono essere utilizzate per i macro-
undef(Macro)−Macro non definito; da questo punto in poi, non potrai chiamare il macro.
ifdef(Macro) −Valuta le seguenti righe solo se è definito il macro.
ifndef(Macro) −Valuta le seguenti righe solo se non è definito il macro.
else−Permette dopo l'istruzione ifdef o ifndef. Se la condizione è falsa, viene valutata l'istruzione successiva di else.
endif −Marchio di fine della frase delle istruzioni ifdef o ifndef.
Quando si utilizzano le seguenti istruzioni, è necessario utilizzarle nel modo corretto come mostrato nel seguente programma.
-ifdef(<NomeFlag>). -define(...). -else. -define(...). -endif.