Maison  >  Article  >  développement back-end  >  Comment gérer les modèles de chaînes inattendus dans fmt.Sprintf dans Golang ?

Comment gérer les modèles de chaînes inattendus dans fmt.Sprintf dans Golang ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 08:00:02685parcourir

How to Handle Unexpected String Templates in fmt.Sprintf in Golang?

Gestion des modèles de chaînes inattendus dans fmt.Sprintf

Dans Golang, fmt.Sprintf est une fonction courante utilisée pour formater des chaînes. Bien qu'il offre de la flexibilité, il existe des scénarios dans lesquels il peut rencontrer un comportement inattendu.

L'un de ces scénarios est celui où un programme transmet une chaîne complète sans espaces réservés à fmt.Sprintf. Prenons l'exemple suivant :

<code class="go">import "fmt"

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

Si le programme reçoit une chaîne complète telle que "Bonjour les amis" au lieu d'un modèle, il provoquera une panique et affichera un message d'erreur.

Empêcher le Inattendu

Pour atténuer ce problème, plusieurs approches peuvent être envisagées :

  • Exiger des espaces réservés : imposer l'utilisation d'espaces réservés (par exemple, %s) dans les modèles de chaînes . Demandez aux utilisateurs de tronquer la chaîne à une longueur nulle s'ils le souhaitent :
Hello Friends%.0s

Cela donnera lieu à un résultat simple :

Hello Friends
  • Utiliser un formatage alternatif techniques : envisagez d'utiliser des techniques de formatage alternatives qui gèrent plus gracieusement les chaînes non réservées, telles que la concaténation de chaînes ( ) ou la fonction strings.Join.

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