Heim > Backend-Entwicklung > Golang > Wie formatiere ich Fehler mit variablen Argumenten in Go richtig?

Wie formatiere ich Fehler mit variablen Argumenten in Go richtig?

Patricia Arquette
Freigeben: 2024-11-06 03:39:02
Original
851 Leute haben es durchsucht

How to Correctly Format Errors with Variable Arguments in Go?

Formatierungsfehler: Alternative zu Fehlern.Neu mit variablen Argumenten

Um die Fehlerbehandlung zu verbessern, können Benutzer versuchen, eine angepasste Version der Fehler zu erstellen.Neu Funktion, die mehrere Argumente akzeptiert und das Verhalten von fmt.Sprintf nachahmt. Obwohl bereits Versuche unternommen wurden, ergeben sich Herausforderungen bei der korrekten Interpretation variabler Argumente innerhalb der benutzerdefinierten Funktion. Dieser Artikel untersucht die Lösung und bietet Anleitungen zur Implementierung eines robusten Fehlerformatierungsmechanismus.

Ein solcher Versuch besteht darin, eine Funktion wie folgt zu definieren:

<code class="go">func NewError(format string, a ...interface{}) error {
    return errors.New(fmt.Sprintf(format, a))
}</code>
Nach dem Login kopieren

Dieser Ansatz greift jedoch bei dem Versuch zu kurz Übergeben Sie variable Argumente an fmt.Sprintf, was dazu führt, dass die Argumente als einzelnes Array behandelt werden. Um dieses Problem zu beheben, ist es wichtig, den ...-Operator nach den Variablenargumenten (a) in der benutzerdefinierten Funktion zu verwenden, wie im korrigierten Code unten gezeigt:

<code class="go">func NewError(format string, a ...interface{}) error {
    return errors.New(fmt.Sprintf(format, a...))
}</code>
Nach dem Login kopieren

Durch die Verwendung des ... Der Operator fmt.Sprintf kann die Variablenargumente korrekt interpretieren und die Zeichenfolge entsprechend formatieren. Dadurch können Benutzer benutzerdefinierte Fehlerformatierungsfunktionen erstellen, die die leistungsstarken Formatierungsfunktionen von fmt.Sprintf nutzen.

Das obige ist der detaillierte Inhalt vonWie formatiere ich Fehler mit variablen Argumenten in Go richtig?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage