Raku-Kurs / Fortgeschritten / Operatoren

Benutzerdefinierte Operatoren

Operatoren in Raku sind eigentlich nur Subroutinen mit speziellen Namen. Das bedeutet, du kannst deine eigenen definieren, indem du die Kategorienamen verwendest, die du auf der Seite Typen von Raku-Operatoren kennengelernt hast: prefix, infix, postfix und so weiter.

Um einen Operator zu deklarieren, schreibst du ein sub, dessen Name die Kategorie ist, ein Doppelpunkt und das Symbol des Operators in spitzen Klammern. Hier ist ein neuer Infix-Operator namens plus:

sub infix:<plus>($a, $b) {
    $a + $b
}

say 3 plus 4; # 7

Einmal definiert, wird plus zwischen seinen zwei Operanden verwendet, genau wie jeder eingebaute Infix-Operator.

Ein Postfix-Operator folgt seinem Operanden. Die Fakultät ist ein klassisches Beispiel — hier als !-Postfix-Operator, aufgebaut auf dem Reduktions-Meta-Operator, den du zuvor kennengelernt hast:

sub postfix:<!>(Int $n) {
    [*] 1..$n
}

say 5!; # 120

Du bist nicht auf Buchstaben und ASCII-Satzzeichen beschränkt; das Symbol eines Operators kann ein beliebiges Zeichen sein. Dieser Prefix-Operator verwendet das Paragraphenzeichen, um eine Zahl zu verdoppeln:

sub prefix:<§>($x) {
    $x * 2
}

say §5; # 10

Operatoren zu definieren ist ein mächtiges Werkzeug, also setze es mit Geschmack ein: Ein gut gewählter Operator kann Code wie die Problemdomäne lesbar machen, während ein obskurer nur den nächsten Leser verwirrt.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Übungen

Dieser Abschnitt enthält 3 Übungen. Sehen Sie sich alle Themen dieses Abschnitts an, bevor Sie mit den Übungen beginnen.

  1. Durchschnittsoperator
  2. Prozent-von-Operator
  3. Ein Quadrierungsoperator

Kursnavigation

Lösung: Eine URL bauen   |   Durchschnittsoperator