Corso di Raku / Avanzato / Subroutine

Approfondimento sulle subroutine MAIN

Nella parte Essenziali hai usato MAIN per ricevere gli argomenti da riga di comando. Raku fa molto di piu per te riguardo a MAIN oltre al semplice passaggio dei valori.

Il messaggio di utilizzo

Se gli argomenti sulla riga di comando non corrispondono alla firma di MAIN, Raku non esegue il corpo della funzione. Invece, stampa un messaggio di utilizzo generato automaticamente che descrive come il programma dovrebbe essere invocato.

Prendi questo programma:

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

Invocato correttamente, saluta la persona:

$ raku hello.raku Anna
Hello, Anna!

Invocato senza argomenti, la firma non corrisponde, quindi Raku stampa il messaggio di utilizzo al posto del saluto:

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

Il messaggio viene costruito a partire dai nomi dei parametri, quindi dare loro nomi significativi rende il testo di aiuto utile senza alcuno sforzo aggiuntivo.

Argomenti con nome

I parametri di MAIN possono essere sia con nome che posizionali. Un parametro con nome diventa un’opzione --opzione=valore sulla riga di comando, e un valore predefinito lo rende facoltativo:

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

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

Pratica

Risolvi 1 quiz sul contenuto di questo argomento.

Esercizi

Questa sezione contiene 3 esercizi. Guarda tutti gli argomenti di questa sezione prima di iniziare gli esercizi.

  1. Un flag da riga di comando
  2. Un MAIN tipizzato
  3. Sommare due argomenti

Quiz — Dispatch con where   |   Un flag da riga di comando