Benutzerdefinierte ToString-Funktionalität für Strings.Join in Go
In Go erfordert die strings.Join-Funktion ein Segment von Strings als Eingabe. Es kann jedoch nützlich sein, Objekte unterschiedlichen Typs zu verbinden, die die Konvertierung in Strings unterstützen.
Problem:
Wir möchten eine benutzerdefinierte Funktion erstellen, Join, die dauert ein Slice von Objekten, die eine ToString()-Funktion implementieren und ihre String-Darstellungen mit einem angegebenen verbinden Trennzeichen.
Lösung:
Anstatt eine bestimmte ToString()-Schnittstelle zu definieren, können wir die integrierte String()-Methode von Go verwenden. Hängen Sie diese Methode einfach an einen beliebigen benannten Typ an, und Sie erhalten automatisch die Möglichkeit, die Zeichenfolgendarstellung anzupassen.
Beispiel:
Hier ist ein Beispiel für die Erstellung eines benutzerdefinierten Typs Typ (bin), der den Standard int erweitert Typ:
package main import "fmt" type bin int func (b bin) String() string { return fmt.Sprintf("%b", b) } func main() { fmt.Println(bin(42)) }
Ausgabe:
101010
In diesem Beispiel wird die binäre Darstellung der Ganzzahl 42 auf der Konsole ausgegeben. Beachten Sie, dass wir fmt.Println direkt für den Bin-Typ aufrufen können, da ihm jetzt eine String()-Methode angehängt ist.
Durch die Verwendung der String()-Methode vermeiden wir die Notwendigkeit einer benutzerdefinierten ToString()-Schnittstelle oder Wrapper-Funktionen. Es ermöglicht uns, bestehende Typen einfach zu erweitern und ihre String-Darstellungen für verschiedene Anwendungsfälle anzupassen.
Das obige ist der detaillierte Inhalt vonWie kann ich die String-Verknüpfung in Go für Objekte jenseits von String-Slices anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!