Курс языка программирования 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; # 6postfix
Постфиксный оператор стоит после единственного операнда:
my $x = 5;
$x++;
say $x; # 6circumfix и
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 упражнения. Прежде чем приступать к практике, изучите все темы раздела.