Maison > Article > développement back-end > Comment formater correctement les erreurs avec des arguments variables dans Go ?
Dans le but d'améliorer la gestion des erreurs, les utilisateurs peuvent chercher à créer une version personnalisée des erreurs.Nouveau fonction qui accepte plusieurs arguments, imitant le comportement de fmt.Sprintf. Bien que des tentatives aient été faites, des difficultés surviennent lors de l'interprétation correcte des arguments variables au sein de la fonction personnalisée. Cet article explore la solution et fournit des conseils sur la mise en œuvre d'un mécanisme de formatage d'erreur robuste.
Une de ces tentatives consiste à définir une fonction comme suit :
<code class="go">func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a)) }</code>
Cependant, cette approche échoue lorsqu'on tente de transmettez les arguments de la variable à fmt.Sprintf, ce qui fait que les arguments sont traités comme un seul tableau. Pour résoudre ce problème, il est essentiel d'utiliser l'opérateur ... après les arguments variables (a) dans la fonction personnalisée, comme démontré dans le code corrigé ci-dessous :
<code class="go">func NewError(format string, a ...interface{}) error { return errors.New(fmt.Sprintf(format, a...)) }</code>
En employant le ... opérateur, fmt.Sprintf peut interpréter correctement les arguments de la variable et formater la chaîne en conséquence. Cela permet aux utilisateurs de créer des fonctions de formatage d'erreur personnalisées qui exploitent les puissantes capacités de formatage de fmt.Sprintf.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!