Курс по Raku / Напреднали / Повече за вградените типове / Конструкции за цитиране 🆕

q, qq и Q

Има три основни оператора за цитиране, които се различават по това колко обработват текста вътре:

  • q — като единични кавички: почти всичко е буквално
  • qq — като двойни кавички: променливите и екраниращите последователности се интерполират
  • Q — най-буквалният от всички: нищо не се обработва

Всеки от тях приема текста между двойка разделители. Познатите '…' са съкращение за q, а "…" е съкращение за qq:

my $name = 'Anna';

say q{Hello $name};  # Hello $name
say qq{Hello $name}; # Hello Anna

q оставя $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 тест върху съдържанието на тази тема.

Навигация в курса

Конструкции за цитиране 🆕   |   Тест — Цитиране


💪 Или преминете направо към упражненията в този раздел.