English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Guard kann verwendet werden, um die Funktionalität der Musterzuordnung zu erweitern. Mit Guard können wir einfache Tests und Vergleiche für die Variablen im Muster durchführen.
Die allgemeine Syntax des Guard-Satzes ist wie folgt-
function(parameter) when condition ->
Wo,
Function(parameter) −Dies ist die Funktionsdeklaration unter Schutzbedingungen.
Parameter −Normalerweise basieren Schutzbedingungen auf Parametern.
Bedingung −Bewertung der Bedingung, um zu bestimmen, ob die Funktion ausgeführt werden sollte.
Wenn die Guard-Bedingung angegeben ist, muss die when-Satz verwendet werden.
Lassen Sie uns einen einfachen Beispiel sehen, wie man Guard verwendet-
-module(helloworld). -export([display/1,start/0]). display(N) when N > 10 -> io:fwrite("größer als 10"); display(N) when N < 10 -> io:fwrite("Less than 10). start() -> display(11.
Bezüglich der obigen Beispiele, einige Punkte sollten beachtet werden:
display-Funktion wird mit einem Guard definiert. Wenn der Parameter n größer ist10Wenn der erste display-Aussage einen Schutz hat, daher, wenn der Parameter größer ist10,dann wird diese Funktion aufgerufen.
Die display-Funktion wurde erneut definiert, aber diesmal der Schutz ist kleiner10。Auf diese Weise können Sie dieselbe Funktion mehrmals definieren, wobei jede Funktion eine separate Guard-Bedingung hat.
Die Ausgabe des obigen Programms ist wie folgt:
größer than 10
Schutzbedingungen können auch für if else und case-Sätze verwendet werden. Lassen Sie uns sehen, wie man Schutzoperationen für diese Sätze ausführt.
Guard kann auch für if-Sätze verwendet werden, damit eine Reihe von Anweisungen basierend auf Schutzbedingungen ausgeführt wird. Lassen Sie uns sehen, wie wir das erreichen können.
-module(helloworld). -export([start/0]). start() -> N = 9, if N > 10 -> io:fwrite("N is greater than 10"); true -> io:fwrite("N is less than 10") end.
Bezüglich der obigen Beispiele, einige Punkte sollten beachtet werden:
guard-Funktion wird zusammen mit der if-Satz verwendet. Wenn das Ergebnis der Berechnung der guard-Funktion true ist, wird der Satz „N ist größer als“ angezeigt10”。
Wenn das Ergebnis der Berechnung der guard-Funktion false ist, wird der Satz „N ist kleiner als“ angezeigt10”。
Die Ausgabe des obigen Programms ist wie folgt:
N is less than 10
Schutz kann auch für case-Sätze verwendet werden, damit eine Reihe von Anweisungen basierend auf Schutzbedingungen ausgeführt wird. Lassen Sie uns sehen, wie wir dieses Ziel erreichen können.
-module(helloworld). -export([start/0]). start() -> A = 9, case A of {A} when A>10 -> io:fwrite("Der Wert von A ist größer als10"); _ -> io:fwrite("Der Wert von A ist kleiner als10") end.
Bezüglich der obigen Beispiele, einige Punkte sollten beachtet werden:
guard-Funktion wird zusammen mit der case-Satz verwendet. Wenn das Ergebnis der Berechnung der guard-Funktion true ist, wird der Satz „Der Wert von A ist größer als“ angezeigt10”。
Wenn das Ergebnis der Berechnung der guard-Funktion einen anderen Wert ist, wird der Satz „Der Wert von A ist kleiner als“ angezeigt10”。
Die Ausgabe des obigen Programms ist wie folgt:
Der Wert von A ist kleiner als10
Es kann auch mehrere Schutzbedingungen für eine Funktion angegeben werden. Die allgemeine Syntax eines Schutzsatzes mit mehreren Schutzbedingungen ist wie folgt:-
function(parameter) when condition1 , condition1 , .. conditionN ->
Wo,
Function(parameter) −Dies ist eine Funktionserklärung unter Verwendung von Schutzbedingungen.
Parameter −Normalerweise basieren Schutzbedingungen auf Parametern.
condition1, condition1, .. conditionN −Diese sind mehrfache Schutzbedingungen für Funktionen.
Wenn Schutzbedingungen angegeben sind, muss das when-Statement verwendet werden.
Lassen Sie uns einen einfachen Beispiel sehen, wie man mehrere Wächter verwendet-
-module(helloworld). -export([display/1,start/0]). display(N) when N > 10 , is_integer(N) -> io:fwrite("größer als 10"); display(N) when N < 10 -> io:fwrite("kleiner als 10). start() -> display(11.
Zu den obigen Beispielen sollte beachtet werden:
Sie werden bemerken, dass für die erste display-Funktionserklärung10Bedingung, wurde auch die Bedingung is\u integer angegeben. Daher wird nur dann N10wird dieser Funktion ausgeführt.
Die Ausgabe des obigen Programms ist wie folgt:
kleiner als 10