Corso di Raku / Fondamenti / Fondamenti delle funzioni / 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); # 20Passare 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); # 20Questo è simile a una chiamata prolissa:
say distance(from => $from, to => $to); # 20Anche in questo caso, l’ordine non è rigido:
say distance(:$to, :$from); # 20Se 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
Risolvi 2 quiz sul contenuto di questo argomento.
Navigazione del corso
← Quiz — Chiamata di una funzione | Quiz 1 — Parametri nominati →
💪 Oppure vai direttamente agli esercizi di questa
sezione.