Raku-Kurs / Grundlagen / Grundlagen der Funktionen / Erstellen und Aufrufen von Funktionen
Benannte Parameter
Im Gegensatz zu positionsbasierten Parametern werden benannte Parameter durch ihre Namen referenziert.
Die folgende Funktion nimmt zwei Parameter namens $from
und $to entgegen.
sub distance(:$from, :$to) { $from - $to }Um die Funktion aufzurufen, müssen Sie die Argumente benennen:
say distance(from => 30, to => 10); # 20Es ist ein Fehler, die Argumente so zu übergeben, als wären sie
positionsbasiert. Zum Beispiel erzeugt ein Aufruf
distance(30, 10) einen Fehler:
Zu viele positionsbasierte Argumente übergeben; erwartete 0 Argumente, aber 2 erhalten
in sub distance bei t.raku Zeile 1
in Block <unit> bei t.raku Zeile 2
Der Vorteil ist, dass benannte Argumente in beliebiger Reihenfolge aufgelistet werden können. Die folgenden beiden Aufrufe sind völlig gleichwertig:
say distance(from => 30, to => 10); # 20
say distance(to => 10, from => 30); # 20Variablen übergeben
Wenn der Wert, den Sie an eine Funktion übergeben möchten, in einer Variablen gespeichert ist, deren Name mit dem Namen des Parameters übereinstimmt, können Sie eine spezielle Syntax verwenden, die das Tippen reduziert:
my $from = 30;
my $to = 10;
say distance(:$from, :$to); # 20Dies ist ähnlich wie ein ausführlicher Aufruf:
say distance(from => $from, to => $to); # 20Auch hier ist die Reihenfolge nicht streng:
say distance(:$to, :$from); # 20Wenn der Name der Variablen vom Namen des Parameters abweicht, verwenden Sie eine der Möglichkeiten, ein Paar zu übergeben:
my $a = 20;
my $b = 10;
say distance(from => $a, to => $b);
# oder:
say distance(:from($a), :to($b));Praxis
Lösen Sie 2 Quizze zum Inhalt dieses Themas.
Kursnavigation
← Quiz — Aufruf einer Funktion | Quiz 1 — Benannte Parameter →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.