So formatieren Sie Strings in Go

Da Zeichenfolgen häufig aus geschriebenem Text bestehen, gibt es viele Fälle, in denen wir möglicherweise mehr Kontrolle darüber haben möchten, wie Zeichenfolgen aussehen, um sie für den Menschen durch Interpunktion, Zeilenumbrüche und Einrückungen besser lesbar zu machen.

In diesem Lernprogramm werden einige Möglichkeiten erläutert, wie Sie mit Go-Zeichenfolgen arbeiten können, um sicherzustellen, dass der gesamte Ausgabetext korrekt formatiert ist.

String Literals

Lassen Sie uns zunächst zwischen einem String-Literal und einem String-Wert unterscheiden. Ein String-Literal ist das, was wir im Quellcode eines Computerprogramms sehen, einschließlich der Anführungszeichen. Ein String-Wert wird angezeigt, wenn wir die Funktion "+ fmt.Println +" aufrufen und das Programm ausführen.

Im Programm "Hello, World!" Lautet das Zeichenfolgenliteral "" Hello, World! "", Während der Zeichenfolgenwert "+ Hello, World! +" Ohne Anführungszeichen lautet. Der Zeichenfolgenwert wird als Ausgabe in einem Terminalfenster angezeigt, wenn ein Go-Programm ausgeführt wird.

Einige Zeichenfolgenwerte müssen jedoch möglicherweise Anführungszeichen enthalten, z. B. wenn eine Quelle zitiert wird. Da Zeichenfolgenliterale und Zeichenfolgenwerte nicht gleichwertig sind, müssen Zeichenfolgenliterale häufig zusätzlich formatiert werden, um sicherzustellen, dass Zeichenfolgenwerte so angezeigt werden, wie wir es beabsichtigen.

Zitate

Da wir in Go Anführungszeichen (+ \ + ) oder doppelte Anführungszeichen ( + "+`) verwenden können, ist es einfach, Anführungszeichen in eine Zeichenfolge einzubetten, indem doppelte Anführungszeichen in eine Zeichenfolge eingeschlossen werden:

`Sammy says, "Hello!"`

Um ein rückseitiges Anführungszeichen zu verwenden, können Sie die Zeichenfolge in doppelte Anführungszeichen setzen:

"Sammy likes the `fmt` package for formatting strings.."

Durch die Kombination von Anführungszeichen und doppelten Anführungszeichen können wir die Anzeige von Anführungszeichen und Anführungszeichen in unseren Zeichenfolgen steuern.

Es ist wichtig zu wissen, dass die Verwendung von Anführungszeichen in Go ein "+ raw" -Stringliteral erzeugt und die Verwendung von doppelten Anführungszeichen ein "+ interpretiertes" -Stringliteral erzeugt. Weitere Informationen zum Unterschied finden Sie im https://www.digitalocean.com/community/tutorials/an-einführung-zum-Arbeiten-mit-Strings-inIngrippedEine Einführung in die Arbeit mit Strings in Go].

Escape-Charaktere

Eine andere Möglichkeit, Zeichenfolgen zu formatieren, ist die Verwendung eines escape-Zeichens. Escape-Zeichen werden verwendet, um dem Code mitzuteilen, dass das folgende Zeichen eine spezielle Bedeutung hat. Escape-Zeichen beginnen alle mit dem Backslash (+ \ +) in Kombination mit einem anderen Zeichen in einer Zeichenfolge, um die angegebene Zeichenfolge auf eine bestimmte Weise zu formatieren.

Hier ist eine Liste einiger der gebräuchlichen Escape-Zeichen:

Escape Character How it formats

\

Backslash

"

Double Quote

\n

Line Break

\t

Tab (horizontal indentation)

Verwenden Sie ein Escape-Zeichen, um die Anführungszeichen zum obigen Beispiel in Anführungszeichen hinzuzufügen. Diesmal verwenden wir jedoch doppelte Anführungszeichen, um die Zeichenfolge zu kennzeichnen:

fmt.Println("Sammy says, \"Hello!\"")
OutputSammy says, "Hello!"

Durch die Verwendung des Escapezeichens "+" + "können wir doppelte Anführungszeichen verwenden, um eine Zeichenfolge einzuschließen, die Text zwischen doppelten Anführungszeichen enthält.

Wir können das Escape-Zeichen + \ n + verwenden, um Zeilen zu unterbrechen, ohne die Eingabe- oder Eingabetaste zu drücken:

fmt.Println("This string\nspans multiple\nlines.")
OutputThis string
spans multiple
lines.

Wir können auch Fluchtzeichen kombinieren. Lassen Sie uns eine mehrzeilige Zeichenfolge drucken und den Tabulatorabstand für eine aufgeschlüsselte Liste einschließen. Beispiel:

fmt.Println("1.\tShark\n2.\tShrimp\n10.\tSquid")
Output1.      Shark
2.      Shrimp
10.     Squid

Der horizontale Einzug, der mit dem Escape-Zeichen "+ \ t +" versehen ist, stellt die Ausrichtung innerhalb der zweiten Spalte im vorhergehenden Beispiel sicher und macht die Ausgabe für den Menschen äußerst lesbar.

Escape-Zeichen werden verwendet, um Zeichenfolgen, die möglicherweise schwierig oder unmöglich zu erreichen sind, eine zusätzliche Formatierung hinzuzufügen. Ohne Escape-Zeichen wäre es nicht möglich, den String zu konstruieren "+ Sammy sagt:" Ich verwende gerne das \ fmt \ -Paket "+".

Mehrere Zeilen

Das Drucken von Zeichenfolgen in mehreren Zeilen kann die Lesbarkeit von Text für den Menschen verbessern. Mit mehreren Zeilen können Zeichenfolgen in sauberen und geordneten Text gruppiert, als Buchstaben formatiert oder zur Beibehaltung der Zeilenumbrüche eines Gedichts oder Liedtexts verwendet werden.

Um Zeichenfolgen zu erstellen, die mehrere Zeilen umfassen, werden die Zeichenfolgen in Anführungszeichen gesetzt. Beachten Sie, dass dadurch zwar die Zeilenrendite erhalten bleibt, jedoch auch ein "+ raw +" - Zeichenfolgenliteral erstellt wird.

`
This string is on
multiple lines
within three single
quotes on either side.
`

Wenn Sie dies ausdrucken, werden Sie feststellen, dass es einen führenden und einen nachgestellten Return gibt:

Output
This string is on
multiple lines
within three single
quotes on either side.

Um dies zu vermeiden, müssen Sie die erste Zeile unmittelbar nach dem rückseitigen Anführungszeichen einfügen und die letzte Zeile mit dem rückseitigen Anführungszeichen beenden.

`This string is on
multiple lines
within three single
quotes on either side.`

Wenn Sie ein interpretiertes Zeichenfolgenliteral erstellen müssen, können Sie doppelte Anführungszeichen und den Operator "+" verwenden. Sie müssen jedoch eigene Zeilenumbrüche einfügen.

"This string is on\n" +
"multiple lines\n" +
"within three single\n" +
"quotes on either side."

Während rückseitige Anführungszeichen das Drucken und Lesen von langem Text erleichtern können, müssen Sie doppelte Anführungszeichen verwenden, wenn Sie ein interpretiertes Zeichenfolgenliteral benötigen.

Raw String Literals

Was ist, wenn wir keine spezielle Formatierung in unseren Zeichenfolgen wünschen? Beispielsweise müssen wir möglicherweise Zeichenfolgen von Computercode vergleichen oder auswerten, die den Backslash absichtlich verwenden, damit Go ihn nicht als Escape-Zeichen verwendet.

Ein * raw * String-Literal weist Go an, alle Formatierungen innerhalb eines Strings, einschließlich Escape-Zeichen, zu ignorieren.

Wir erstellen eine Rohzeichenfolge, indem wir die Zeichenfolge in Anführungszeichen setzen:

fmt.Println(`Sammy says,\"The balloon\'s color is red.\"`)
OutputSammy says,\"The balloon\'s color is red.\"

Durch die Erstellung einer Rohzeichenfolge in Anführungszeichen um eine bestimmte Zeichenfolge können Backslashes und andere Zeichen beibehalten werden, die als Escapezeichen verwendet werden.

Fazit

In diesem Lernprogramm wurden verschiedene Methoden zum Formatieren von Text in "Gehe durch Arbeiten mit Zeichenfolgen" beschrieben. Durch die Verwendung von Techniken wie Escape-Zeichen oder rohen Zeichenfolgen können wir sicherstellen, dass die Zeichenfolgen unseres Programms korrekt auf dem Bildschirm gerendert werden, sodass der Endbenutzer den gesamten ausgegebenen Text problemlos lesen kann.