Maison > développement back-end > Golang > %v peut-il imprimer à la fois des entiers et des chaînes dans « fmt.Printf » de Go ?

%v peut-il imprimer à la fois des entiers et des chaînes dans « fmt.Printf » de Go ?

Susan Sarandon
Libérer: 2024-11-14 09:32:02
original
1061 Les gens l'ont consulté

Can %v Print Both Integers and Strings in Go's `fmt.Printf`?

Utiliser %v pour imprimer différents types de données

Il est courant de rencontrer des situations où nous devons imprimer à la fois des entiers (%d) et chaînes (%s) en utilisant printf. On pourrait se demander s'il est possible d'utiliser %v pour les deux types. Bien que cela soit acceptable, l'utilisation de %v sans discernement peut conduire à des résultats inattendus.

Le formatage par défaut de %v

fmt.Printf("%v") est un format générique espace réservé qui imprime la valeur en utilisant le format « par défaut », qui peut être remplacé en spécifiant des indicateurs de format. Pour les entiers, %v est par défaut le formatage en base 10 (%d). Cependant, %v revient à l'interface fmt.Stringer pour les types non primitifs.

Considérons l'exemple suivant :

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

In dans ce cas, %v respecte l'implémentation de la méthode String() dans MyInt et affiche "2", remplaçant le formatage entier par défaut.

Considérations

Utiliser %v à la fois pour les entiers et les chaînes n'est techniquement pas faux. Cependant, cela peut entraîner un formatage qui n’est pas souhaitable dans toutes les situations. Il est recommandé d'utiliser le spécificateur de format explicite (%d pour les entiers et %s pour les chaînes) pour garantir un formatage cohérent et prévisible.

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