Курс по Raku / Напреднали / Повече за вградените типове / Конструкции за цитиране 🆕
q, qq и Q
Има три основни оператора за цитиране, които се различават по това колко обработват текста вътре:
q— като единични кавички: почти всичко е буквалноqq— като двойни кавички: променливите и екраниращите последователности се интерполиратQ— най-буквалният от всички: нищо не се обработва
Всеки от тях приема текста между двойка разделители. Познатите
'…' са съкращение за q, а "…" е
съкращение за qq:
my $name = 'Anna';
say q{Hello $name}; # Hello $name
say qq{Hello $name}; # Hello Annaq оставя $name непроменено; qq
го интерполира. Екраниращите последователности с обратна наклонена черта
като \n се държат по същия начин: само qq (и
"…") превръща \n в истински нов ред, докато и
q, и Q го оставят като двата символа
\ и n:
say qq{line\nbreak}; # line<newline>break
say q{line\nbreak}; # line\nbreak
say Q{line\nbreak}; # line\nbreakТогава по какво се различават q и Q?
q, подобно на единичните кавички, все пак обработва
малък набор от екранирания — удвоена обратна наклонена черта
\\ се превръща в една, и можете да екранирате затварящия
разделител — докато обикновената форма Q не обработва
абсолютно нищо:
say q{a\\b}; # a\b — q колапсира екранираната обратна наклонена черта
say Q{a\\b}; # a\\b — Q запазва и двата символаМожете да изберете всякакви разделители — q{…},
q[…], q/…/, q!…! — което е
удобно, когато самият текст съдържа кавички. Трите оператора са
основата; следващата тема показва как наречията ви позволяват
да комбинирате точно кои функции са активни.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Конструкции за цитиране 🆕 | Тест — Цитиране →
💪 Или преминете направо към упражненията в този
раздел.