Курс по Raku / Основи / Създаване и извикване на функции

Стойности по подразбиране

И двата вида параметри, позиционни и именувани, могат да имат стойности по подразбиране. Ако функцията има стойност по подразбиране за даден параметър, този параметър може да бъде пропуснат при извикване на функцията.

Позиционни параметри

Пример за стойност по подразбиране за функция с позиционни параметри:

sub greet($name = 'World') {
    say "Hello, $name!";
}

greet('Merinda');
greet();

Първото извикване използва името, предадено като единствен аргумент, и следователно отпечатва Hello, Merinda!. Второто извикване използва стойността по подразбиране и отпечатва Hello, World!.

Ако функцията има повече от един параметър, тогава стойностите по подразбиране могат да се използват само в края на списъка с тях:

sub f($a, $b, $c = 42, $d = 50) { . . . } # правилно
# sub f($a = 10, $b = 20, $c, $d) { . . . } # ГРЕШНО

Именувани параметри

Същият синтаксис се използва за задаване на стойности по подразбиране за именувани параметри:

sub greet(:$name = 'World') {
    say "Hello, $name!";
}

greet(name => 'Merinda'); # Hello, Merinda!
greet(); # Hello, World!

Редът на именуваните параметри няма значение, така че всеки от тях може да има стойности по подразбиране, дори първият в списъка:

sub greet(:$greeting = 'Hello', :$name) {
    say "$greeting, $name!";
}

greet(name => 'Alla'); # Hello, Alla!

Практика

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

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

Създаване и извикване на функции / Именувани параметри   |   💪 Упражнения: Създаване и извикване на функции

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

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