Corso di Raku / Avanzato / Altro sui tipi predefiniti / Costrutti di quoting
q, qq e Q
Ci sono tre operatori di quoting base, che differiscono per quanto elaborano il testo al loro interno:
q— come le virgolette singole: quasi tutto è letteraleqq— come le virgolette doppie: variabili e sequenze di escape vengono interpolateQ— il più letterale di tutti: nulla viene elaborato
Ognuno prende il testo tra una coppia di delimitatori. Il familiare
'…' è un’abbreviazione per q, e
"…" è un’abbreviazione per qq:
my $name = 'Anna';
say q{Hello $name}; # Hello $name
say qq{Hello $name}; # Hello Annaq lascia $name invariato; qq
lo interpola. Le sequenze di escape con backslash come \n
si comportano allo stesso modo: solo qq (e
"…") trasforma \n in un vero carattere di
nuova riga, mentre sia q che Q lo lasciano
come i due caratteri \ e n:
say qq{line\nbreak}; # line<newline>break
say q{line\nbreak}; # line\nbreak
say Q{line\nbreak}; # line\nbreakQuindi dove differiscono q e Q?
q, come le virgolette singole, gestisce ancora un
piccolo insieme di escape — un doppio backslash \\
diventa uno solo, e puoi fare l’escape del delimitatore di chiusura —
mentre la forma Q pura non elabora nulla
affatto:
say q{a\\b}; # a\b — q collapses the escaped backslash
say Q{a\\b}; # a\\b — Q keeps both charactersPuoi scegliere qualsiasi delimitatore — q{…},
q[…], q/…/, q!…! — il che è
comodo quando il testo stesso contiene virgolette. I tre operatori sono
la base; l’argomento successivo mostra come gli avverbi ti permettono
di combinare esattamente quali funzionalità sono attive.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Costrutti di quoting | Quiz — Quoting →
💪 Oppure vai direttamente agli esercizi di questa
sezione.