Kurso de Raku / Esencoj / Stringoj
Eskapado de specialaj karakteroj
Imagu ke vi volas presi prezetiketon, kaj vi konservas kaj la nomon de la produkto kaj ĝian prezon en skalaj variabloj?
my $product = 'Electricity';
my $price = 3.14;
Kiel vi presas la etikedon se la prezo estas en dolaroj? La atendata rezulto estas: Electricity costs $3.14
. Dolarsigno en duoble-cititaj ŝnuroj estas indikilo de variablo por esti interpolita. Por presi la $
karakteron mem, vi devas eskapi ĝin:
say "$product costs \$$price";
Kompreneble, vi povas uzi ŝnuran kunigon kaj eviti eskapi $
:
say $product ~ ' costs $' ~ $price;
Ĉi tiu varianto presas ekzakte la saman ŝnuron, sed interpolado aspektas pli natura kaj pli facile legebla. Notu, ke la $
karaktero nek estis interpolita nek eskapita en unuoble-citita ŝnuro: ' costs $'
. Tio estas la ĉefa diferenco. Specialaj karakteroj en unuoblaj citiloj aperas kiel ili estas.
Jen kelkaj pliaj specialaj karakteroj kiuj havas specialan signifon en duoble-cititaj ŝnuroj:
\$ |
Dolarsigno |
\n |
Nova linio |
\r |
Karet-retorno |
\t |
Horizontala tabo |
\" |
Duobla citilo |
\\ |
Reenstreko |
La maniero kiel vi citas la ŝnuron difinas kiel Raku traktas specialajn karakterojn. Konsideru ĉi tiujn du ekzemplojn:
say 'One\nTwo';
say "Three\nFour";
Se vi rulas ĉi tiun programon, vi vidos ke la unua ŝnuro aperas kiel estas en unu linio. La dua ŝnuro estis dividita en du pecojn:
One\nTwo
Three
Four
En duoblaj citiloj, speciala sekvenco \n
estis traktita kiel nova linio karaktero, dum en ŝnuro en unuoblaj citiloj ĝi estis regula sekvenco de du karakteroj: \
kaj n
.
Estas interesa escepto por '
kaj \
. En unuoblaj citiloj, vi povas eskapi unuoblan citilon per prefikso kun alia \
:
say '\''; # '
Reenstreko ankaŭ devas esti eskapita se unuobla citilo sekvas ĝin:
say 'a\b\c\\'; # a\b\c\
Praktiko
Plenumu la kvizon, kiu kovras la enhavon de ĉi tiu temo.
Kurso navigado
← Stringoj / Koda interpolado | Stringoj / Stringa longo →
💪 Or jump directly to the exercises to this section.
Ĉi tiu paĝo estas aŭtomate tradukita per ChatGPT 4o. Originala angla teksto
Tradukoj de ĉi tiu paĝo: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська