Raku-Kurs / Grundlagen / Zeichenketten

Spezielle Zeichen escapen

Stellen Sie sich vor, Sie möchten ein Preisschild drucken und sowohl den Namen des Produkts als auch dessen Preis in Skalaren speichern?

my $product = 'Electricity';
my $price = 3.14;

Wie drucken Sie das Schild, wenn der Preis in Dollar angegeben werden soll? Die erwartete Ausgabe ist: Electricity costs $3.14. Ein Dollarzeichen in doppelt-angeführten Strings ist ein Indikator für eine zu interpolierende Variable. Um das $-Zeichen selbst zu drucken, müssen Sie es maskieren:

say "$product costs \$$price";

Natürlich können Sie auch String-Konkatenation verwenden und das Maskieren von $ vermeiden:

say $product ~ ' costs $' ~ $price;

Diese Variante druckt genau denselben String, aber die Interpolation wirkt natürlicher und ist leichter zu lesen. Beachten Sie, dass das $-Zeichen in einem einfach-angeführten String weder interpoliert noch maskiert wurde: ' costs $'. Das ist der Hauptunterschied. Sonderzeichen in einfachen Anführungszeichen erscheinen unverändert.

Hier sind einige weitere Sonderzeichen, die in doppelt-angeführten Strings eine besondere Bedeutung haben:

\$ Dollarzeichen
\n Zeilenumbruch
\r Wagenrücklauf
\t Horizontaler Tabulator
\" Doppelte Anführungszeichen
\\ Rückwärtsschrägstrich

Die Art und Weise, wie Sie den String anführen, definiert, wie Raku Sonderzeichen behandelt. Betrachten Sie diese beiden Beispiele:

say 'One\nTwo';
say "Three\nFour";

Wenn Sie dieses Programm ausführen, werden Sie sehen, dass der erste String unverändert in einer einzigen Zeile erscheint. Der zweite String wurde in zwei Teile aufgeteilt:

One\nTwo
Three
Four

In doppelt-angeführten Strings wurde die spezielle Sequenz \n als Zeilenumbruch verarbeitet, während sie in einem String in einfachen Anführungszeichen eine reguläre Sequenz von zwei Zeichen war: \ und n.

Es gibt eine interessante Ausnahme für ' und \. In einfachen Anführungszeichen können Sie ein einfaches Anführungszeichen maskieren, indem Sie ihm ein weiteres \ voranstellen:

say '\''; # '

Ein Rückwärtsschrägstrich muss ebenfalls maskiert werden, wenn ihm ein einfaches Anführungszeichen folgt:

say 'a\b\c\\'; # a\b\c\

Praxis

Machen Sie das Quiz, das den Inhalt dieses Themas abdeckt.

Kursnavigation

Zeichenketten / Code-Interpolation   |   Zeichenketten / Zeichenkettenlänge


💪 Or jump directly to the exercises to this section.

Diese Seite wurde automatisch mit ChatGPT 4o übersetzt. Originaler englischer Text.

Übersetzungen dieser Seite: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська