Курс Раку / Основи / Більше про функції

Типізовані параметри

Параметри функцій у 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

Як визначити, що це помилка під час компіляції

Якщо повідомлення про помилку починається з ===SORRY!=== Error while compiling, це означає, що помилка сталася під час компіляції.

Практика

Виконайте вікторину, що охоплює зміст цієї теми.

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

Більше про функції / Зверніть увагу на пробіли   |   Більше про функції / Тип повернення


💪 Or jump directly to the exercise to this section.

Ця сторінка автоматично перекладена за допомогою ChatGPT 4o. Оригінальний текст англійською мовою.

Переклади цієї сторінки: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська