Курс языка программирования Raku / Приложение 🆕 / Порядок выполнения и функции / Подпрограммы и функциональный стиль / Exercises / Описание по типу

Решение: Описание по типу

Вот один из возможных вариантов решения задачи.

Код

multi describe(Int $x) { "integer $x" }
multi describe(Str $x) { "string $x" }
multi describe(@x)     { "list of {@x.elems}" }

say describe(42);
say describe('hi');
say describe([1, 2, 3]);

🦋 Исходный код можно найти в файле multi-describe.raku.

Вывод

integer 42
string hi
list of 3

Комментарии

  1. Каждый multi задаёт свою версию describe с параметром другого типа. Raku выбирает подходящего кандидата по типу аргумента.

  2. Сигнатура @x соответствует списку, поэтому массив попадает в третьего кандидата, который сообщает его длину.

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

Описание по типу   |   Сортировка по двум ключам