Курс по 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Коментари
Всеки
multiдава по една версия наdescribeс различен тип на параметъра. Raku избира съвпадащия кандидат според типа на аргумента.Сигнатурата
@xсъвпада със списък, така че масивът се диспечира към третия кандидат, който съобщава дължината му.