Курс Раку / Основи / Створення та виклик функцій

Значення за замовчуванням

І позиційні, і іменовані параметри можуть мати значення за замовчуванням. Якщо функція має значення за замовчуванням для заданого параметра, цей параметр можна пропустити при виклику функції.

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

Приклад значення за замовчуванням для функції з позиційними параметрами:

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 4o. Оригінальний текст англійською мовою.

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