Курс по 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 тест върху съдържанието на тази тема.

Навигация в курса

Кодова интерполация   |   Тест: Обратен наклонен знак в извеждането


💪 Или преминете направо към упражненията в този раздел.