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
DDDOriginal
2024-12-09 21:55:141080Durchsuche

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
}

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

func Join(a []ToStringConverter, sep string) string

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))
}

Spielplatz und Ausgabe

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

Ausgabe:

101010

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!

Stellungnahme:
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