Maison > développement back-end > Golang > le corps du texte

Pourquoi devriez-vous éviter d'utiliser %v pour imprimer des entiers et des chaînes dans Go ?

Barbara Streisand
Libérer: 2024-11-12 11:02:02
original
557 Les gens l'ont consulté

Why Should You Avoid Using %v for Printing Integers and Strings in Go?

Les inconvénients de l'utilisation de %v pour imprimer des entiers et des chaînes

Bien qu'il soit permis d'utiliser %v pour les entiers et les chaînes, ce n'est pas le cas recommandé car cela peut conduire à un comportement inattendu avec le "fmt" package.

Comprendre le rôle de %d et %v

  • %d imprime spécifiquement des entiers en utilisant la base 10.
  • %v tentatives pour imprimer les valeurs en utilisant leur formatage par défaut, qui peut être remplacé en fonction de la mise en forme implémentée interfaces.

Exemple avec un formateur personnalisé

type MyInt int

func (mi MyInt) String() string {
    return fmt.Sprint("*", int(mi), "*")
}

func main() {
    var mi MyInt = 2
    fmt.Printf("%d %v", mi, mi)
}
Copier après la connexion

Sortie :

2 *2*
Copier après la connexion

Dans cet exemple , bien que nous utilisions %v, la méthode String() de MyInt est invoquée car elle implémente la méthode String() du fmt.Stringer, ce qui entraîne un formatage personnalisé appliqué à l'entier.

Règles de formatage par défaut pour %v

Selon la documentation du package "fmt", %v tente d'utiliser les règles suivantes dans l'ordre :

  • Appelle l'interface Formatter si elle est implémentée par le opérande.
  • Appelle l'interface GoStringer si le format #%v est utilisé.
  • Utilise la méthode Error si l'opérande implémente l'interface d'erreur.
  • Utilise la méthode String() si disponible.

Potentiel Problèmes

L'impression d'entiers avec %v peut potentiellement prêter à confusion lorsque le formatage par défaut remplace le comportement %d attendu. Par exemple, lorsqu'il s'agit de types spéciaux tels que des pointeurs ou des valeurs complexes, l'utilisation de %v peut entraîner un résultat inattendu.

Conclusion

Bien que %v offre une flexibilité dans le formatage, il est généralement conseillé d'utiliser des verbes spécifiques comme %d pour les entiers et %s pour les chaînes afin de garantir la clarté et d'éviter toute ambiguïté potentielle.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal