Курс Raku / Додаток 🆕 / Порядок виконання та функції / Підпрограми та функційний стиль / Вправи / Опис за типом
Розв’язання: Опис за типом
Ось одне з можливих розв’язань задачі.
Код
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зіставляється зі списком, тож масив диспетчеризується на третього кандидата, який повідомляє його довжину.