Курс Raku / Основи / Основи змінних і типів даних / Рядки
Екранування спеціальних символів
Уявіть, що ви хочете надрукувати цінник і зберігаєте як назву продукту, так і його ціну в скалярних змінних?
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\Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Інтерполяція коду | Тест: Зворотна коса риса у виводі →
💪 Або перейдіть одразу до вправ цього розділу.