Corso di Raku / Avanzato / Controllo di flusso
given e when
Quando un programma deve scegliere tra diverse alternative, una
catena di controlli if e elsif può diventare
lunga e ripetitiva. In questa situazione, il costrutto
given/when è spesso più chiaro. È simile
all’istruzione switch presente in altri linguaggi.
Il blocco given prende un valore e lo rende il
topic — la variabile speciale $_. Ogni blocco
when viene poi confrontato con quel topic, e il primo che
corrisponde viene eseguito:
my $n = 2;
given $n {
when 1 { say 'one' }
when 2 { say 'two' }
when 3 { say 'three' }
}Questo programma stampa:
twoA differenza dello switch in alcuni altri linguaggi, non
c’è fall-through: non appena un when corrisponde, il suo
blocco viene eseguito e il blocco given è terminato. I
blocchi when rimanenti non vengono testati.
Il blocco default
Un blocco default viene eseguito quando nessuno dei
blocchi when ha trovato corrispondenza. Svolge lo stesso
ruolo del ramo else di un’istruzione if:
my $n = 5;
given $n {
when 1 { say 'one' }
when 2 { say 'two' }
default { say 'many' }
}Poiché $n non è né 1 né 2, il
programma stampa:
manyAnche in questa sezione
Pratica
Risolvi 1 quiz sul contenuto di questa sezione.
Esercizi
Questa sezione contiene 3 esercizi. Guarda tutti gli argomenti di questa sezione prima di iniziare gli esercizi.
Navigazione del corso
← Quiz —
LEAVE | Matching di intervalli, tipi e
condizioni →