Corso di Raku / Avanzato / Controllo di flusso / Prefissi di istruzione / Exercises / Silenziare un avviso
Soluzione: Silenziare un avviso
Ecco una possibile soluzione al compito.
Codice
my $name;
my $greeting = quietly { "Hello, " ~ $name ~ "!" };
say $greeting;🦋 Il codice sorgente è disponibile nel file silence-warning.raku.
Output
Hello, !Commenti
Interpolare il
$namenon definito nella stringa normalmente attiva un avviso “use of uninitialized value”. Racchiudere l’espressione inquietlylo sopprime, quindi viene stampato solo il saluto.Come
do,quietlyrestituisce il valore del suo blocco, quindi la stringa assemblata (con il nome mancante che lascia uno spazio vuoto) viene memorizzata in$greeting.quietlynasconde solo l’avviso — il valore è comunque non definito. Se invece volete gestire il valore mancante, fornite un valore predefinito con l’operatore defined-or//:$name // 'friend'produce'friend'quando$nameè non definito, quindi"Hello, " ~ ($name // 'friend') ~ "!"stampaHello, friend!senza alcun avviso.