Курс по 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

Коментари

  1. Когато стойността за съвпадение е тип, умното съвпадение проверява дали темата е от този тип. 3.14 не е Int, затова първият when се пропуска.

  2. Десетичен литерал като 3.14 е Rat (рационално число) в Raku, така че вторият when съвпада и програмата отпечатва rational.

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

Съпоставяне по тип   |   gather и take