Курс по 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   |   Флаг от командния ред