Curso de Raku / Apéndice 🆕 / Flujo y funciones / Subrutinas y estilo funcional / Exercises / Describir según el tipo
Solución: Describir según el tipo
Aquí tienes una posible solución para la tarea.
Código
multi describe(Int $x) { "integer $x" }
multi describe(Str $x) { "string $x" }
multi describe(@x) { "list of {@x.elems}" }
say describe(42);
say describe('hi');
say describe([1, 2, 3]);🦋 Puedes encontrar el código fuente en el archivo multi-describe.raku.
Salida
integer 42
string hi
list of 3Comentarios
Cada
multida una versión dedescribecon un tipo de parámetro distinto. Raku elige el candidato que coincide según el tipo del argumento.La firma
@xcoincide con una lista, así que el array despacha al tercer candidato, que informa de su longitud.