Kurso de Raku / Esencoj / Bazoj de variabloj kaj datumtipoj / Ĉenoj

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

Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.

Kursa navigado

Koda interpolado   |   Kvizo: Inversiga streketo en la eligo


💪 Aŭ iru rekte al la ekzercoj de ĉi tiu sekcio.