Curso de Raku / Avanzado / Subrutinas / Firmas / Exercises / Argumentos nominales slurpy
Solución: Argumentos nominales slurpy
Aquí está una posible solución a la tarea.
Código
sub describe($name, *%opts) {
my $details = %opts.sort.map({ "{.key}={.value}" }).join(', ');
"$name: $details";
}
say describe('Anna', colour => 'red', size => 5);🦋 Encuentra el programa en el archivo slurpy-hash.raku.
Salida
Anna: colour=red, size=5Comentarios
El parámetro posicional fijo
$namese llena primero, y el slurpy*%optsreúne cada argumento nombrado restante en un hash.%opts.sortordena los pares por clave, de modo que la salida es determinista:colourva antes quesize. El.mapconvierte cada par en una cadenakey=valueusando.keyy.value, y.join(', ')los une.La cadena final interpola
$namey el$detailsensamblado, produciendoAnna: colour=red, size=5.