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!