Курс языка программирования 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\
Навигация по курсу
← Строки / Интерполяция кода | Строки / Длина строки →
💪 Or jump directly to the exercises to this section.
Эта страница переведена с английского человеком. Оригинальный текст на английском языке. О переводе.
Переводы этой страницы: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська