Курс по 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 съвпада със списък, така че масивът се диспечира към третия кандидат, който съобщава дължината му.

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

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