Курс языка программирования Raku / Основы / Основы функций / Больше о функциях
Типизированные параметры
Параметры функций в Raku могут быть ограничены типом. Это очень похоже на типизированные переменные.
sub add(Int $x, Int $y) { $x + $y }Теперь функция требует, чтобы её аргументы были целыми числами.
say add(10, 20);
# say add(pi, e); # ОшибкаПопытка передать параметр любого другого типа, кроме
Int, приведет к ошибке времени компиляции.
$ raku t.raku
===SORRY!=== Error while compiling t.raku
Calling add(Num, Num) will never work with declared signature (Int $x, Int $y)
at t.raku:5
------> say ⏏add(pi, e);Обратите внимание, что Raku не будет автоматически преобразовывать типы, даже если это возможно в других случаях.
# say add('3', '4'); # Ошибка
say '3' + '4'; # OK и результат 7%%tipblock ## Как определить, что это ошибка времени компиляции Если
сообщение об ошибке начинается с
===SORRY!=== Error while compiling, это означает, что
ошибка произошла во время компиляции. %%/tipblock
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Внимание к пробелам | Тест: Типизированные параметры →
💪 Или перейдите сразу к
упражнению этого раздела.