Курс Raku / Розширені / Оператори

Типи операторів Raku

Ви вже користувалися багатьма операторами — +, ~, ++ тощо. У Raku оператори класифікують за тим, де вони стоять відносно своїх операндів. Знання цих категорій стане в пригоді згодом, коли ви визначатимете власні оператори.

prefix

Префіксний оператор стоїть перед єдиним операндом:

my $x = 5;
say -$x; # -5
say ?$x; # True

Тут - змінює знак числа, а ? перетворює значення на його булевий відповідник.

infix

Інфіксний оператор стоїть між двома операндами. Більшість знайомих арифметичних і рядкових операторів є інфіксними:

say 3 + 4;       # 7
say 'a' ~ 'b';   # ab

Інфіксний оператор не завжди є розділовим знаком — ним може бути й слово. Оператор gcd, з яким ви познайомилися в темі про цілі числа, наприклад, є інфіксним оператором, записаним як ім’я між двома операндами:

say 12 gcd 18;   # 6

postfix

Постфіксний оператор стоїть після єдиного операнда:

my $x = 5;
$x++;
say $x; # 6

circumfix та postcircumfix

Циркумфіксний оператор оточує свій операнд. Квадратні дужки, що будують масив, є циркумфіксним оператором:

my @a = [1, 2, 3];

Постциркумфіксний оператор оточує щось, але стоїть після терма. Індексування є постциркумфіксним оператором — це [1] після @a:

my @a = 10, 20, 30;
say @a[1]; # 20

Ці назви — prefix, infix, postfix, circumfix та postcircumfix — є тими самими словами, які Raku використовує, коли ви оголошуєте новий оператор, як побачите згодом.

Практика

Виконайте 3 тести за змістом цієї теми.

Вправи

У цьому розділі 3 вправи. Перш ніж братися до практики, вивчіть усі теми розділу.

  1. Збільшити лічильник
  2. Логічне значення
  3. Індексувати хеш

Навігація курсом

Оператори   |   Збільшити лічильник