Курс 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!

Практика

Виконайте 2 тести за змістом цієї теми.

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

Тест 2 — Змінні як іменовані параметри   |   Тест — Визначення значень за замовчуванням


💪 Або перейдіть одразу до вправ цього розділу.