Corso di Raku / Avanzato / Subroutine / Firme / Exercises / Argomenti nominati slurpy
Soluzione: Argomenti nominati slurpy
Ecco una possibile soluzione del compito.
Codice
sub describe($name, *%opts) {
my $details = %opts.sort.map({ "{.key}={.value}" }).join(', ');
"$name: $details";
}
say describe('Anna', colour => 'red', size => 5);🦋 Puoi trovare il codice sorgente nel file slurpy-hash.raku.
Output
Anna: colour=red, size=5Commenti
Il parametro posizionale fisso
$nameviene riempito per primo, e lo slurpy*%optsraccoglie poi ogni argomento nominato rimanente in un hash.%opts.sortordina le coppie per chiave, in modo che l’output sia deterministico:colourviene prima disize. Il.maptrasforma ogni coppia in una stringakey=valuecon.keye.value, e.join(', ')le unisce insieme.La stringa finale interpola
$namee il$detailsassemblato, producendoAnna: colour=red, size=5.