Maison >développement back-end >Golang >Comment gérer les valeurs de remplacement manquantes dans fmt.Sprintf ?

Comment gérer les valeurs de remplacement manquantes dans fmt.Sprintf ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 11:04:01901parcourir

How to Handle Missing Replacement Values in fmt.Sprintf?

Ignorer les champs excédentaires dans fmt.Sprintf

Considérons un scénario dans lequel un programme Go traite une chaîne entrée à partir de la ligne de commande et utilise fmt. Sprintf pour générer une chaîne formatée. Si l'entrée, représentée par tmp_str, contient des espaces réservés (par exemple, "%s") et que la valeur de remplacement qui l'accompagne n'est pas fournie, fmt.Sprintf générera une erreur avec le message "EXTRA string=world", où "world" est le remplacement manquant.

Pour résoudre ce problème et gérer avec élégance les situations dans lesquelles l'entrée peut manquer d'espaces réservés, une approche consiste à exiger que les utilisateurs de ligne de commande incluent systématiquement un espace réservé "%s". Cela garantit que même lorsqu'aucune valeur n'est attribuée à l'espace réservé, le programme évite une panique. Tronquer la chaîne à une longueur nulle, comme le montre l'exemple suivant, supprimera toute sortie associée à l'espace réservé :

<code class="go">package main

import "fmt"

func main() {
    tmp_str := "Hello Friends%.0s"
    str := fmt.Sprintf(tmp_str, "")
    fmt.Println(str)
}</code>

Sortie :

Hello Friends

En utilisant cette stratégie, le programme peut ignorer tous les champs de remplacement excédentaires transmis à fmt.Sprintf et maintenir un comportement stable.

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!

Déclaration:
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