Ecco, l’istruzione case
prende un intero come parametro.
Come la clausola when
prende un intervallo come parametro, allora l’operatore Range#===
viene invocato e controlla se l’intero è incluso nell’intervallo.
L’operatore ..
nel nostro range assicura che gli operandi di sinistra e di destra siano inclusi nel range.
La seconda clausola when
prende un range usando l’operatore ….
Questo significa che l’operando di destra non è incluso nel range.
Ora che abbiamo più familiarità con la clausola when
e gli intervalli, analizziamo un caso limite che ho incontrato usando i float e gli intervalli.
Gamma di valori floating e la clausola when
Come abbiamo visto nell’esempio precedente, l’operatore … esclude l’operando destro dell’intervallo. Ma cosa succede se voglio escludere l’operando sinistro?