Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Zeichenfolgenformatierung | Datentypen
Einführung in Golang
course content

Kursinhalt

Einführung in Golang

Einführung in Golang

1. Erste Schritte
2. Datentypen
3. Kontrollstrukturen
4. Funktionen
5. Arrays und Slices
6. Einführung in Strukturen & Maps

book
Zeichenfolgenformatierung

Jetzt, da wir alle grundlegenden Datentypen kennengelernt haben, können wir String-Formatierung erkunden. In der Programmierung beinhaltet die String-Formatierung das Einfügen von Variablenwerten in Zeichenfolgen.

Hinweis

Die import-Anweisung wird verwendet, um Pakete in eine Go-Anwendung zu importieren. Ein Paket ist eine Sammlung verwandter Go-Quelldateien, die zusammenarbeiten, um eine Reihe von Funktionalitäten oder Diensten anzubieten. Das fmt-Paket bietet Funktionen, die es uns ermöglichen, Zeichenfolgen zu formatieren.

Eine der Funktionen aus dem fmt-Paket, die wir verwendet haben, ist die Println-Funktion. Die Println-Funktion zeigt Ausgabetext jedes Mal in einer neuen Zeile an. Es gibt jedoch eine Funktion namens Print, die die Ausgabe anzeigt, ohne zu einer neuen Zeile zu wechseln:

go

index

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

Im Allgemeinen können wir diese Funktionen verwenden, um Variablenwerte innerhalb von String-Daten mit der folgenden Methode einzufügen:

go

index

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

Diese Methode ist jedoch nicht sehr effizient, da wir den String in viele Segmente aufteilen müssen, um Variablen an relevanten Stellen einzufügen, was in komplexeren Fällen umständlich werden kann. Die Printf-Funktion löst dieses Problem und vereinfacht den Prozess der Anzeige von formatiertem Output.

Die Printf-Funktion nimmt einen Format-String als erstes Argument, gefolgt von Werten (oder Variablen), die in den Format-String eingefügt werden sollen. Ein Format-String enthält Platzhalter (Format-Spezifizierer), die das gewünschte Ausgabeformat definieren.

Folgendes ist ein Beispiel:

go

index

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Wie im Beispiel gezeigt, sind Formatbezeichner Symbole, die als Platzhalter für bestimmte Datentypen innerhalb eines Strings dienen. Es gibt einen eindeutigen Formatbezeichner für jeden Datentyp. Die folgende Tabelle bietet eine Liste grundlegender Formatbezeichner:

FormatbezeichnerDatentyp
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (oder Rune)

Die Variablen ersetzen die jeweiligen Platzhalter im Formatstring. Im Ausgabeergebnis des obigen Beispiels wird das erste %d durch den Wert von n ersetzt. Ebenso wird das zweite durch die entsprechende Variable ersetzt, die in ist, und das letzte %d wird durch den Wert von out ersetzt.

Wir können auch einen String formatieren und ihn in einer String-Variablen speichern, indem wir die Funktion Sprintf verwenden, die einen String formatiert und den resultierenden String zur Speicherung oder anderweitigen Verwendung zurückgibt, anstatt ihn sofort auf dem Bildschirm anzuzeigen:

go

index

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Hier ist ein komplexeres Beispiel, das mehrere Konzepte, die wir zuvor behandelt haben, in einem einzigen Programm integriert. Es wird eine wertvolle Übung sein, das folgende Programm und seine Ausgabe zu überprüfen, um Ihre Code-Lesefähigkeiten zu verbessern:

go

index

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

In einigen Fällen führt der Compiler eine implizite Typumwandlung durch, um Werte mit Formatbezeichnern abzugleichen, wie im folgenden Beispiel gezeigt:

go

index

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

Der Rune 'char' wird sowohl als Zeichen als auch als numerischer Wert ausgegeben. In einigen Fällen kann der Compiler jedoch einen Fehler erzeugen. Zum Beispiel führt der folgende Code zu einer ungültigen Ausgabe, da ein 'float' nicht implizit in einen 'int' umgewandelt werden kann:

go

index

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
Was wird die Ausgabe des folgenden Programms sein?

Was wird die Ausgabe des folgenden Programms sein?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7
We're sorry to hear that something went wrong. What happened?
some-alt