Курс языка программирования 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. Индексация хеша

Навигация по курсу

Операторы   |   Увеличение на единицу