Corso di Raku / Fondamenti / Creazione e chiamata di funzioni

Parametri nominati

In contrasto con i parametri posizionali, i parametri nominati sono riferiti dai loro nomi.

La seguente funzione prende due parametri chiamati $from e $to.

sub distance(:$from, :$to) { $from - $to }

Ora, per chiamare la funzione, è necessario nominare gli argomenti:

say distance(from => 30, to => 10); # 20

È un errore passare gli argomenti come se fossero posizionali. Ad esempio, una chiamata distance(30, 10) genera un errore:

Troppi posizionali passati; previsti 0 argomenti ma ne sono stati ricevuti 2
    in sub distance at t.raku line 1
    in block <unit> at t.raku line 2

La parte buona è che gli argomenti nominati possono essere elencati in qualsiasi ordine. Le seguenti due chiamate sono totalmente equivalenti:

say distance(from => 30, to => 10); # 20

say distance(to => 10, from => 30); # 20

Passare variabili

Quando il valore che vuoi passare a una funzione è contenuto in una variabile, il cui nome coincide con il nome del parametro, puoi usufruire di una sintassi speciale che riduce la digitazione:

my $from = 30;
my $to = 10;
say distance(:$from, :$to); # 20

Questo è simile a una chiamata prolissa:

say distance(from => $from, to => $to); # 20

Anche in questo caso, l’ordine non è rigido:

say distance(:$to, :$from); # 20

Se il nome della variabile differisce dal nome del parametro, usa uno dei modi per passare una coppia:

my $a = 20;
my $b = 10;

say distance(from => $a, to => $b);

# oppure:

say distance(:from($a), :to($b));

Pratica

Completa i quiz che coprono i contenuti di questo argomento.

Creazione e chiamata di funzioni / Parametri posizionali   |   Creazione e chiamata di funzioni / Valori predefiniti


💪 Or jump directly to the exercises to this section.

Questa pagina è tradotta automaticamente con ChatGPT 4o. Testo originale in inglese.

Traduzioni di questa pagina: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська