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>
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>
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!