So formatieren Sie Zeichenfolgen in Go

So formatieren Sie Zeichenfolgen in Go

Beim Schreiben von Go-Code werden Sie die Zeichenfolgenformatierung in vielen Situationen sehr nützlich finden. Möglicherweise analysieren Sie Eingaben oder erstellen eine komplexere Ausgabe als eine einfache Verkettung. Möglicherweise arbeiten Sie mit anderen Typen als einfachen Zeichenfolgen.





Die Zeichenfolgenformatierung in Go verwendet den vertrauten Prozess und die Syntax der printf-Funktion, die auch Sprachen von Java bis Haskell verwenden.





Go bietet verschiedene Methoden zum Formatieren von Zeichenfolgen in der fmt Paket. Sie können Funktionen und Verben für die Formatierung von Zeichenfolgen verwenden, abhängig von der Operation oder den Eingaben, die Sie formatieren möchten.





Zeichenfolgenformatierung in Go

Die Funktionen im fmt-Paket ähneln denen von like die printf-Funktion in der Bash oder C. Go leitet seine Formatierungsverben von C ab.

Sie nutzen Verben zur Zeichenfolgenformatierung als Platzhalter für Ihre Variablenwerte in einer enthaltenden Zeichenfolge. Sie können diese Formatierungszeichenfolge dann an eine Funktion wie übergeben Druckf , zusammen mit Werten, die diesen Platzhaltern entsprechen.



Sie können keine Zeichenfolgenformatierungsverben mit verwenden Drucken und Druckln Methoden. Sie können sie mit Methoden wie verwenden Druckf und Sprintf .

fmt.Println("This is a test %v", 90) 
fmt.Printf("This is a test %v", 90)

Das %in Verb gibt jeden Wert in seinem Standardformat aus. Das Druckln -Methode erkennt keine Verben und gibt die empfangenen Argumente aus. Das Druckf und Sprintf Funktionen formatieren beide das erste String-Argument, das Sie ihnen übergeben.





  Ergebnis der Formatierung von Ganzzahlen

String-Formatierungsfunktionen im fmt-Paket

Zeichenfolgen formatieren in die Programmiersprache Go erfordert, dass Sie eine Zeichenfolgenformatierungsfunktion und ein Verb verwenden. Die Funktion gibt die formatierte Zeichenfolge zurück, und die Verben sind die Platzhalter für die Eingaben in die Zeichenfolge.

Das Druckf Die Methode formatiert die Eingabe gemäß dem Formatbezeichner und gibt die Anzahl der geschriebenen Bytes oder Fehler zurück.





So überprüfen Sie die Temperatur des Laptops
fmt.Printf("This is a test %v", 90) 

Herkömmlicherweise müssen Sie sich bei der Verwendung von keine Gedanken über Fehler machen Druckf Methode.

Das Sprintf Die Methode formatiert gemäß dem angegebenen Format und gibt das Ergebnis als Zeichenfolge zurück.

var result = fmt.Sprintf("This is a test %v", 90) 

Das Fprintf -Methode formatiert die Zeichenfolge und schreibt sie in einen Writer (Methoden, die die io.Writer Schnittstelle)

// write data to standard output 
result, err = fmt.Fprintf(writer, "This is a test %v", 90)

Das Fscanf Methode scannt von einem Lesegerät und formatiert gemäß dem angegebenen Format.

var take string 

// read data from the given string
readString := strings.NewReader("This is a test")

read, err := fmt.Fscanf(reader, "%v", &take)

In diesem Fall ist die Fscanf dekodiert die Zeichenkette vom Lesegerät in die nehmen Variable, und die lesen Die Variable enthält das Ergebnis des Formats.

Wie bekomme ich kostenlos Informationen auf dem Mac?

Die Verben zur Zeichenfolgenformatierung

Go bietet viele Formatierungsverben, die Sie zusammen mit den Zeichenfolgenformatierungsfunktionen verwenden können.

Es gibt allgemeine Zeichenfolgenformatierungsverben wie die %in Verb in den Beispielen für Zeichenfolgenformatierungsfunktionen. Sie können die allgemeinen Zeichenkettenformatierungsverben verwenden, um jeden Datentyp zu formatieren.

Du kannst den ... benutzen %#in Verb, um einen beliebigen Wert auszugeben, das %+v für Strukturen, die %T Verb für den Typ eines beliebigen Werts und die %% Verb für keine Werte.

type any struct {  
name string
age int
isLoggedIn bool
}

var instance = any {
name: "John Doe",
age: 34,
isLoggedIn: true,
}

var result = fmt.Sprintf("This is a struct formatting example %+v", instance)
fmt.Println(result)

Das Ergebnis Variable enthält die formatierte Zeichenfolge der instanziierten Struktur. Wenn Sie es ausdrucken, sollte es in etwa so aussehen:

This is a struct formatting example {name:John Doe age:34 isLoggedIn:true}

Es gibt die Verben zum Formatieren bestimmter nativer Go-Datentypen, einschließlich Kanälen und Zeigern.

%t boolesche Werte.
%d int, int8 usw.
%d, %#x falls mit %#v gedruckt uint, uint8 usw.
%g float32, complex64 usw.
%s Schnur.
%p Chan.
%P Zeiger.

Sie sollten sicherstellen, dass Sie bei den Verben keine Fehler machen, da bei ihnen zwischen Groß- und Kleinschreibung unterschieden wird, wie z Chan und Zeiger Verben.

Ganzzahlen und Gleitkommazahlen formatieren

Es gibt Zeichenfolgenformatierungsverben zum Formatieren von Ganzzahlen verschiedene Basen . Sie können jedes dieser Verben verwenden, um ganze Zahlen zu formatieren

%b Basis 2
%c das Zeichen, das durch den entsprechenden Unicode-Codepunkt dargestellt wird.
%d Basis 10.
Basis 8.
Basis 8 mit 0o-Präfix.
%q ein Zeichenliteral mit einfachen Anführungszeichen, das mit der Go-Syntax sicher maskiert wurde.
%x Basis 16, mit Kleinbuchstaben für a-f.
%X Basis 16, mit Großbuchstaben für A-F.
%IN Unicode-Format: U+1234; dasselbe wie 'U+%04X'.

Beispielsweise können Sie eine Ganzzahl mit formatieren %d Verb:

var result = fmt.Sprintf("This is an integer formatting example %d", 90) 
fmt.Println(result)

Dies sind die Verben zum Formatieren von Fließkommazahlen.

%b dezimallose wissenschaftliche Notation mit Exponent einer Potenz von zwei, in der Art von strconv. FormatFloat mit dem 'b'-Format, z. -123456p-78
%und wissenschaftliche Notation, z.B. -1.234456e+78
%UND Dezimalpunkt, aber kein Exponent, z. B. 123.456
%f Dezimalpunkt, aber kein Exponent, z. B. 123.456
%F Synonym für %f.
%g %e für große Exponenten, %f sonst. Präzision unten.
%G %E für große Exponenten, sonst %F
%x Hexadezimalschreibweise (mit Dezimalpotenzen von zwei Exponenten), z. B. -0x1,23abcp+20.
%X Hexadezimalschreibweise in Großbuchstaben, z. -0X1.23ABCP+20.

Hier ist ein Beispiel für die Formatierung eines Dezimalpunkts ohne Exponent mit dem %f Verb.

var result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503) 
fmt.Println(result)

Sie können immer die allgemeinen Verben verwenden, wenn Sie sich über den Typ nicht sicher sind.

Strings und Bytes formatieren

Strings und Slice-of-Byte-Typen sind in Go ziemlich ähnlich. Dies sind die Flags zum Formatieren von Strings und Bytes.

%s die nicht interpretierten Bytes der Zeichenfolge oder des Segments
%q eine Zeichenfolge in doppelten Anführungszeichen, die mit der Go-Syntax sicher maskiert wurde
%x Basis 16, Kleinbuchstaben, zwei Zeichen pro Byte
%X Basis 16, Großbuchstaben, zwei Zeichen pro Byte

Hier ist ein Beispiel für die Formatierung einer Zeichenfolge mit dem %s Verb.

kann man mac os auf einem pc ausführen?
var score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

Das fmt-Paket ist für die Python-Programmierung unerlässlich

Das fmt Paket enthält die meisten Funktionen, die Sie für die Formatierung von Zeichenfolgen benötigen. Go bietet auch eine Saiten Paket für String-Manipulation und a Protokoll Paket, das Zeichenfolgen für die Protokollierung formatieren kann.

Das fmt Paket hat Funktionen, die die implementieren io.Writer und io.Reader Schnittstellen. Sie werden es für viele Anwendungsfälle wie das Erstellen von Web- und Befehlszeilenanwendungen nützlich finden.