Heim > Backend-Entwicklung > Golang > Wie kann ich die benutzerdefinierte ToString()-Funktionalität für Nicht-String-Objekte in Go implementieren?

Wie kann ich die benutzerdefinierte ToString()-Funktionalität für Nicht-String-Objekte in Go implementieren?

DDD
Freigeben: 2024-12-09 21:55:14
Original
1009 Leute haben es durchsucht

How Can I Implement Custom ToString() Functionality for Non-String Objects in Go?

Benutzerdefinierte ToString()-Funktionalität in Go

Die Go-Sprache stellt die strings.Join-Funktion zum Verketten von String-Slices bereit, aber was ist, wenn Sie möchten? beliebige Objekte mit benutzerdefinierten Zeichenfolgendarstellungen verbinden? Diese Frage stellt sich, wenn Sie Nicht-String-Objekte übergeben müssen, die die ToString()-Methode nicht nativ implementieren.

Benutzerdefinierte ToString()-Schnittstelle

Um dieses Problem zu beheben Problem kann eine benutzerdefinierte ToStringConverter-Schnittstelle erstellt werden:

type ToStringConverter interface {
    ToString() string
}
Nach dem Login kopieren

Jedes Objekt, das diese Schnittstelle implementiert, kann dann an einen geänderten Join übergeben werden Funktion:

func Join(a []ToStringConverter, sep string) string
Nach dem Login kopieren

ToString() implementieren

Um benutzerdefinierte String-Darstellungen zu aktivieren, implementieren Sie einfach die String()-Methode für einen beliebigen benannten Typ:

package main

import "fmt"

type bin int

func (b bin) String() string {
        return fmt.Sprintf("%b", b)
}

func main() {
        fmt.Println(bin(42))
}
Nach dem Login kopieren

Spielplatz und Ausgabe

Spielplatz-Link: [http://play.golang.org/p/Azql7_pDAA](http://play.golang.org/p/Azql7_pDAA)

Ausgabe:

101010
Nach dem Login kopieren

Dieser Ansatz ermöglicht für mehr Flexibilität bei der String-Verkettung, sodass Sie Nicht-String-Objekte mit benutzerdefinierten String-Darstellungen integrieren können.

Das obige ist der detaillierte Inhalt vonWie kann ich die benutzerdefinierte ToString()-Funktionalität für Nicht-String-Objekte in Go implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage