Курс по 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 упражнения. Разгледайте всички теми в раздела, преди да се захванете с практиката.
Навигация в курса
← Оператори | Броене нагоре →