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

Erlang-Makros (Macros)

Makros werden normalerweise zur Inline-Code-Ersatz verwendet. In Erlang werden Makros durch die folgenden Anweisungen definiert.

  • - define(Konstante, Ersatz).

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

Hier ist ein Beispiel für ein Makro mit der ersten Syntax-

Beispiel für die Verwendung von Makros mit Funktionsklasse

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

In dem obigen Programm können Sie sehen, wie das Makro durch das "?" erweitert wird. Symbolische Konstanten werden durch die Werte ersetzt, die im Makro definiert sind.

Die Ausgabe des obigen Programms wird sein-

Ausgaberesultat

1

wie unten gezeigt-

Beispiel für die Verwendung von Makros mit Funktionsklasse

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

Die Ausgabe des obigen Programms wird sein-

Ausgaberesultat

{3}

Die folgenden zusätzlichen Anweisungen können für Makros verwendet werden-

  • undef(Macro)-Makro nicht definiert; Sie können das Makro thereafter nicht aufrufen.

  • ifdef(Macro) −Bewertet die folgenden Zeilen nur, wenn das Makro definiert ist.

  • ifndef(Macro) −Bewertet die folgenden Zeilen nur, wenn keine Makros definiert sind.

  • else−Erlaubt nach ifdef- oder ifndef-Anweisungen. Wenn die Bedingung falsch ist, werden die Anweisungen nach else bewertet.

  • endif −Markiert das Ende von ifdef- oder ifndef-Anweisungen.

Bei der Verwendung der obigen Anweisungen sollte sie auf die richtige Weise wie im folgenden Programm gezeigt verwendet werden.

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