Курс по 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еRat(рационално число) в Raku, така че вториятwhenсъвпада и програмата отпечатваrational.