Курс Raku / Розширені / Підпрограми

Більше про підпрограми MAIN

У частині «Основи» ви користувалися MAIN, щоб отримувати аргументи командного рядка. Raku робить навколо MAIN більше, ніж просто передає значення всередину.

Повідомлення про використання

Якщо аргументи в командному рядку не відповідають сигнатурі MAIN, Raku не виконує тіла. Натомість він виводить автоматично згенероване повідомлення про використання, яке описує, як слід викликати програму.

Візьмімо таку програму:

sub MAIN($name) {
    say "Hello, $name!";
}

Викликана правильно, вона вітає людину:

$ raku hello.raku Anna
Hello, Anna!

Викликана без аргументу, вона не відповідає сигнатурі, тож Raku виводить довідку замість привітання:

$ raku hello.raku
Usage:
  hello.raku <name>

Повідомлення будується з імен параметрів, тож осмислені імена роблять текст довідки корисним самі собою.

Іменовані аргументи

Параметри MAIN можуть бути не лише позиційними, а й іменованими. Іменований параметр стає перемикачем --option=value у командному рядку, а типове значення робить його необов’язковим:

sub MAIN(:$name = 'World') {
    say "Hello, $name!";
}
$ raku hello.raku
Hello, World!

$ raku hello.raku --name=Raku
Hello, Raku!

Практика

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

Вправи

У цьому розділі 3 вправи. Перш ніж братися до практики, вивчіть усі теми розділу.

  1. Прапорець командного рядка
  2. Типізована MAIN
  3. Додати два аргументи

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

Тест — Диспетчеризація з where   |   Прапорець командного рядка