Cursus Raku / Geavanceerd / Subroutines

Meer over MAIN-subroutines

In het onderdeel Essentials heb je MAIN gebruikt om commandoregelargumenten te ontvangen. Raku doet meer voor je rond MAIN dan alleen de waarden doorgeven.

Het gebruiksbericht

Als de argumenten op de commandoregel niet overeenkomen met de signatuur van MAIN, voert Raku de body niet uit. In plaats daarvan drukt het een automatisch gegenereerd gebruiksbericht af dat beschrijft hoe het programma moet worden aangeroepen.

Neem dit programma:

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

Correct aangeroepen begroet het de persoon:

$ raku hello.raku Anna
Hello, Anna!

Aangeroepen zonder argument komt de signatuur niet overeen, dus drukt Raku het gebruiksbericht af in plaats van de begroeting:

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

Het bericht wordt opgebouwd uit de namen van de parameters, dus als je ze betekenisvolle namen geeft, wordt de helptekst vanzelf nuttig.

Benoemde argumenten

Parameters van MAIN kunnen zowel benoemd als positioneel zijn. Een benoemde parameter wordt een --optie=waarde-schakelaar op de commandoregel, en een standaardwaarde maakt deze optioneel:

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

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

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Oefeningen

Deze sectie bevat 3 oefeningen. Bekijk alle onderwerpen van deze sectie voordat je aan de oefeningen begint.

  1. Een opdrachtregelvlag
  2. Een getypte MAIN
  3. Twee argumenten optellen

Cursusnavigatie

Quiz — Dispatch met where   |   Een opdrachtregelvlag