Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Конкурентное программирование / Джанкшены
Создание джанкшенов
Проще всего построить джанкшен джанктивными операторами. Оператор
| создаёт джанкшен any:
my $j = 1 | 2 | 3;
say $j; # any(1, 2, 3)Значение $j означает «1, или 2, или 3». Джанкшены бывают
четырёх видов, у каждого есть оператор и соответствующая функция:
any( … )илиa | b— истинно, если совпадает любое значениеall( … )илиa & b— истинно, если совпадают все значенияone( … )илиa ^ b— истинно, если совпадает ровно одно значениеnone( … )— истинно, если ни одно значение не совпадает (это единственный вид без операторной формы — используйте функцию)
Функциональные формы удобны со списком:
say all(3, 7, 2); # all(3, 7, 2)
say none(1, 2, 3); # none(1, 2, 3)Больше всего пользы от джанкшена в сравнении. Вопрос, равно ли число джанкшену any, проверяет его сразу со всеми значениями:
say so 2 == any(1, 2, 3); # True
say so 5 == any(1, 2, 3); # FalseОператорная форма читается не менее естественно:
1 | 2 | 3 — это в точности тот же джанкшен
any:
say so 2 == 1 | 2 | 3; # True
say so 5 == 1 | 2 | 3; # Falseso превращает джанктивный результат в обычное логическое
значение. Следующая тема рассматривает, что при этом происходит за
кулисами.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Джанкшены | Тест — Джанкшены →
💪 Или перейдите сразу к упражнениям этого
раздела.