Kurso de Raku / Progresinta / Operatoroj

Uzant-difinitaj operatoroj

Operatoroj en Raku efektive estas nur subrutinoj kun specialaj nomoj. Tio signifas, ke vi povas difini viajn proprajn, uzante la kategoriajn nomojn, kiujn vi renkontis sur la paĝo Tipoj de Raku-operatoroj: prefix, infix, postfix kaj tiel plu.

Por deklari operatoron, skribu sub, kies nomo estas la kategorio, dupunkto, kaj la simbolo de la operatoro en angulaj krampoj. Jen nova infiksa operatoro nomata plus:

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

say 3 plus 4; # 7

Post kiam ĝi estas difinita, plus estas uzata inter siaj du operandoj, ĝuste kiel ĉiu enkonstruita infiksa operatoro.

Postfiksa operatoro sekvas sian operandon. La faktorialo estas klasika ekzemplo — jen ĝi kiel la postfiksa operatoro !, konstruita sur la redukta metaoperatoro, kiun vi renkontis pli frue:

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

say 5!; # 120

Vi ne limiĝas al literoj kaj ASCII-interpunkcio; la simbolo de operatoro povas esti ajna signo. Ĉi tiu prefiksa operatoro uzas la paragrafan signon por duobligi nombron:

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

say §5; # 10

Difini operatorojn estas potenca ilo, do uzu ĝin kun gusto: bone elektita operatoro povas igi kodon legiĝi kiel la problema fako, dum malklara nur konfuzas la sekvan leganton.

Praktiko

Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.

Ekzercoj

En ĉi tiu sekcio estas 3 ekzercoj. Trarigardu ĉiujn temojn de ĉi tiu sekcio antaŭ ol komenci la ekzercojn.

  1. Mezuma operatoro
  2. Procent-de operatoro
  3. Kvadratiga operatoro

Kursa navigado

Solvo: Konstrui URL-on   |   Mezuma operatoro