Екранування спеціальних символів
Уявіть, що ви хочете надрукувати цінник і зберігаєте як назву продукту, так і його ціну в скалярних змінних?
my $product = 'Electricity';
my $price = 3.14;
Як надрукувати цінник, якщо ціна має бути в доларах? Очікуваний результат: Electricity costs $3.14
. Знак долара в рядках з подвійними лапками є індикатором змінної для інтерполяції. Щоб надрукувати сам символ $
, потрібно його екранувати:
say "$product costs \$$price";
Звичайно, ви можете використовувати конкатенацію рядків і уникнути екранування $
:
say $product ~ ' costs $' ~ $price;
Цей варіант друкує точно такий же рядок, але інтерполяція виглядає більш природною і легшою для читання. Зверніть увагу, що символ $
не був інтерпольований або екранований у рядку з одинарними лапками: ' costs $'
. Це головна відмінність. Спеціальні символи в одинарних лапках з’являються як є.
Ось ще кілька спеціальних символів, які мають особливе значення в рядках з подвійними лапками:
\$ |
Знак долара |
\n |
Новий рядок |
\r |
Повернення каретки |
\t |
Горизонтальна табуляція |
\" |
Подвійна лапка |
\\ |
Зворотна коса риска |
Спосіб, яким ви цитуєте рядок, визначає, як Raku обробляє спеціальні символи. Розгляньте ці два приклади:
say 'One\nTwo';
say "Three\nFour";
Якщо ви запустите цю програму, ви побачите, що перший рядок з’являється як є на одному рядку. Другий рядок був розділений на дві частини:
One\nTwo
Three
Four
У подвійних лапках спеціальна послідовність \n
була оброблена як символ нового рядка, тоді як у рядку в одинарних лапках це була звичайна послідовність з двох символів: \
і n
.
Є цікаве виключення для '
і \
. В одинарних лапках ви можете екранувати одинарну лапку, додавши перед нею ще одну \
:
say '\''; # '
Зворотна коса риска також має бути екранована, якщо за нею слідує одинарна лапка:
say 'a\b\c\\'; # a\b\c\
Навігація по курсу
← Рядки / Інтерполяція коду | Рядки / Довжина рядка →
💪 Or jump directly to the exercises to this section.
Ця сторінка автоматично перекладена за допомогою ChatGPT 4o. Оригінальний текст англійською мовою.
Переклади цієї сторінки: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська