Corso di Raku / Appendice 🆕 / Flusso e funzioni / Subroutine e stile funzionale / Exercises / Descrivere in base al tipo

Soluzione: Descrivere in base al tipo

Ecco una possibile soluzione del compito.

Codice

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]);

🦋 Trova il programma nel file multi-describe.raku.

Output

integer 42
string hi
list of 3

Commenti

  1. Ogni multi dà una versione di describe con un tipo di parametro diverso. Raku sceglie il candidato corrispondente in base al tipo dell’argomento.

  2. La firma @x corrisponde a una lista, quindi l’array viene distribuito al terzo candidato, che ne riferisce la lunghezza.

Descrivere in base al tipo   |   Ordinare per due chiavi