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; # 7Einmal 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!; # 120Du 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; # 10Operatoren 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.