Corso di Raku / Avanzato / Controllo di flusso / Prefissi di istruzione
do e il valore di un blocco
Un blocco da solo è un’istruzione, non un’espressione, quindi
normalmente non è possibile assegnarlo a una variabile. Il prefisso
do trasforma un blocco in un’espressione il cui valore è il
valore della sua ultima istruzione:
my $x = do {
my $a = 3;
$a + 4;
};
say $x; # 7All’interno del blocco potete dichiarare variabili, eseguire diverse
istruzioni e calcolare un risultato; do restituisce
qualunque cosa il blocco produca. Questo è utile quando per produrre un
valore servono più espressioni.
do funziona anche davanti alle istruzioni di controllo
del flusso, permettendo anche a queste di restituire un valore:
my $sign = do given 5 {
when * > 0 { 'positive' }
when * < 0 { 'negative' }
default { 'zero' }
};
say $sign; # positiveQui do given trasforma l’intero
given/when in un’espressione che produce
positive. Lo stesso funziona con do if e
do for. In breve, do è il modo per usare un
blocco, o una struttura di controllo, in un punto dove è richiesto un
valore.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Prefissi di istruzione | Quiz — do →
💪 Oppure vai direttamente agli esercizi di questa
sezione.