Курс по 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'; # ОК и е 7

Как да разберем дали е грешка по време на компилация

Ако съобщението за грешка започва с ===SORRY!=== Error while compiling, това означава, че грешката е възникнала по време на компилация.

Практика

Попълнете теста, който обхваща съдържанието на тази тема.

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

Повече за функциите / Внимание към пространството   |   Повече за функциите / Тип на връщане


💪 Or jump directly to the exercise to this section.

Тази страница е автоматично преведена с ChatGPT 4.0. Оригинален текст на английски

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