Курс по 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 тест върху съдържанието на тази тема.
Навигация в курса
← Кодова интерполация | Тест: Обратен наклонен знак в извеждането →
💪 Или преминете направо към упражненията в този
раздел.