Курс 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<новий рядок>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 тест за змістом цієї теми.

Навігація курсом

Конструкції квотування 🆕   |   Тест — Квотування


💪 Або перейдіть одразу до вправ цього розділу.