Heim > Backend-Entwicklung > Golang > Wie kann ich mit fmt.Errorf eine benutzerdefinierte Fehlerfunktion ähnlich wie fmt.Sprintf erstellen?

Wie kann ich mit fmt.Errorf eine benutzerdefinierte Fehlerfunktion ähnlich wie fmt.Sprintf erstellen?

Patricia Arquette
Freigeben: 2024-11-05 10:19:02
Original
1073 Leute haben es durchsucht

How can I create a custom error function similar to fmt.Sprintf using fmt.Errorf?

Formatierte Fehlermeldungen mit fmt.Errorf

Anfangsproblem:

Sie wollten konstruieren eine benutzerdefinierte Version vonerrors.New, die den Eingabeparametern von fmt.Sprintf entspricht. Als Sie diese Funktion jedoch implementiert haben:

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

Sie sind auf ein Problem gestoßen, bei dem „a“ zu einem einzelnen Array-Parameter in NewError() wurde. Dies führte dazu, dass fmt.Sprintf nur ein Argument unzureichend in Ihre Formatzeichenfolge einfügte.

Lösung:

Das Hindernis, auf das Sie gestoßen sind, ist auf das Fehlen von ... zurückzuführen (das Auslassungspunkte) nach dem Parameter „a“ in Ihrer Funktionsdeklaration. Gemäß der Go-Spezifikation hindert diese Auslassung Ihren Code daran, die variable Anzahl von Argumenten korrekt zu verarbeiten.

fmt.Errorf zur Rettung

Zufälligerweise bereits fmt.Errorf verfügt über die gewünschte Funktionalität, die Sie implementieren wollten:

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

Durch Anhängen der Auslassungspunkte ermöglichen Sie fmt.Errorf, „a“ geschickt als eine variable Anzahl von Argumenten zu interpretieren und so geschickt auf die Anforderungen Ihrer Formatierung einzugehen Fehlermeldungen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit fmt.Errorf eine benutzerdefinierte Fehlerfunktion ähnlich wie fmt.Sprintf erstellen?. 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