Tracks
/
Go
Go
/
Lehrplan
/
Strings
St

Strings in Go

1 Übung

Über Strings

Ein string in Go ist eine unveränderliche Folge von Bytes, die nicht unbedingt Zeichen darstellen müssen.

Ein Zeichenketten-Literal wird zwischen doppelten Anführungszeichen definiert:

const name = "Jane"

Zeichenketten kannst du mit dem +-Operator verketten:

"Jane" + " " + "Austen"
// => "Jane Austen"

Einige Sonderzeichen müssen mit einem vorangestellten Backslash maskiert werden, zum Beispiel \t für einen Tabulator und \n für einen Zeilenumbruch in Zeichenketten.

"How is the weather today?\nIt's sunny"  
// =>
// How is the weather today?
// It's sunny

Das Paket strings enthält viele nützliche Funktionen, mit denen du Zeichenketten bearbeiten kannst. Weitere Informationen über Zeichenketten-Funktionen findest du in der Dokumentation des strings-Pakets. Hier sind einige Beispiele:

import "strings"

// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"

// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"

Sonderzeichen

Wie bereits erwähnt, müssen einige Sonderzeichen mit einem vorangestellten Backslash maskiert werden. Im Folgenden findest du eine genauere Liste dieser Sonderzeichen:

Wert Beschreibung
\a Alarm oder Klingelton
\b Rücktaste
\\ Backslash
\t Horizontaler Tabulator
\n Zeilenvorschub oder Zeilenumbruch
\f Seitenvorschub
\r Wagenrücklauf
\v Vertikaler Tabulator
\' Einfaches Anführungszeichen
\" Doppeltes Anführungszeichen
fmt.Println("Joe\nWilliam\nJack\nAverell") 

// Output:
// Joe
// William
// Jack
// Averell

Rohe Zeichenketten-Literale

Rohe Zeichenketten-Literale verwenden Backticks (`) als Begrenzungszeichen statt doppelter Anführungszeichen, und alle Zeichen darin werden wörtlich interpretiert. Das heißt, du musst weder Zeichen noch Zeilenumbrüche maskieren.

Das ist ein Beispiel für eine mehrzeilige Zeichenkette:

const daltons = `Joe
William
Jack
Averell`

Diese Zeichenkette hat mehrere Zeilen. Genauer gesagt enthält sie 3 \n. Da es sich aber um ein rohes Zeichenketten-Literal handelt, müssen wir die \n nicht explizit in die Zeichenkette schreiben. Die Zeilenumbrüche werden wörtlich interpretiert.

Hier sind weitere Beispiele, die rohe Zeichenketten-Literale mit regulären Zeichenketten-Literalen vergleichen:

`abc`
// same as "abc"

"\"" // regular string literal with 1 character: a double quote
// same as `"` a raw string literal with 1 character: a double quote

`\n
` // raw string literal with 3 character: a backslash, an 'n', and a newline
// same as "\\n\n"  a regular string literal with 3 characters: a backslash, an 'n', and a newline

"\t\n" // regular string literal with 2 characters: a tab and a newline
`\t\n`// raw string literal with 4 characters: two backslashes, a 't', and an 'n'
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Strings