Курс языка программирования Raku / Продвинутый уровень / Порядок выполнения / given и
when / Exercises / Сопоставление по
типу
Решение: Сопоставление по типу
Вот возможное решение задачи.
Код
my $value = 3.14;
given $value {
when Int { say 'integer' }
when Rat { say 'rational' }
when Str { say 'string' }
}🦋 Исходный код можно найти в файле match-by-type.raku.
Вывод
rationalКомментарии
Когда значение для сопоставления является типом, умное сопоставление проверяет, принадлежит ли топик этому типу.
3.14не являетсяInt, поэтому первыйwhenпропускается.Десятичный литерал вроде
3.14в Raku являетсяRat(рациональным числом), поэтому второйwhenсовпадает, и программа печатаетrational.