Heim > Backend-Entwicklung > Golang > Wie kann ich Go-Strukturen, die Felder enthalten, mit String()-Methoden effektiv drucken?

Wie kann ich Go-Strukturen, die Felder enthalten, mit String()-Methoden effektiv drucken?

DDD
Freigeben: 2024-12-08 02:48:09
Original
410 Leute haben es durchsucht

How Can I Effectively Print Go Structs Containing Fields with String() Methods?

So drucken Sie Strukturen mit Field String()-Methoden

fmt.Println() druckt native Darstellungen von Strukturen, da diese die nicht implementieren String()-Schnittstelle standardmäßig. Die Implementierung von String() für jede Struktur kann mühsam sein und erfordert Aktualisierungen, wenn Felder hinzugefügt oder entfernt werden.

Hilfsfunktion für benutzerdefiniertes Drucken

Um diese Einschränkung zu beheben, können Sie Folgendes tun Verwenden Sie eine Hilfsfunktion, die Reflektion nutzt (Reflect-Paket):

func PrintStruct(s interface{}, names bool) string {
    // ... // (function body as provided in the answer)
}
Nach dem Login kopieren

Diese Funktion iteriert über Strukturfelder und ruft String()-Werte ab, wenn anwendbar:

fmt.Println(PrintStruct(a, true))
Nach dem Login kopieren

Strukturspezifische String()-Methode

Alternativ können Sie eine String()-Methode für Ihre Struktur definieren, die die PrintStruct()-Funktion aufruft :

func (a A) String() string {
    return PrintStruct(a, true)
}
Nach dem Login kopieren

Diese Methode verarbeitet dynamische Änderungen in Strukturfeldern ohne Änderungen am String() Methode.

Verwendung

Mit der Hilfsfunktion oder der strukturspezifischen String()-Methode können Sie Strukturen bequem mit ihren Feld-String()-Werten drucken:

// using the PrintStruct() function
fmt.Println(PrintStruct(a, true))

// using the custom String() method (if defined)
fmt.Println(a)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Go-Strukturen, die Felder enthalten, mit String()-Methoden effektiv drucken?. 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