Maison > développement back-end > Golang > Comment puis-je transmettre plusieurs paramètres variables à Sprintf in Go ?

Comment puis-je transmettre plusieurs paramètres variables à Sprintf in Go ?

Mary-Kate Olsen
Libérer: 2024-10-29 11:40:30
original
852 Les gens l'ont consulté

How Can I Pass Multiple Variable Parameters to Sprintf in Go?

Passer des paramètres de variable à Sprintf dans Go

Pour éviter la tâche fastidieuse de spécifier chaque variable individuellement dans la fonction Sprintf, on peut exploiter un technique qui permet de transmettre plusieurs paramètres en tant qu'entité unique. Cette approche aborde les scénarios dans lesquels un nombre important de paramètres sont requis, comme illustré dans la question.

La clé de cette technique réside dans la déclaration de la tranche v comme []interface{} plutôt que []string. La fonction Sprintf s'attend à ce que ses arguments soient de type []interface{}, comme indiqué dans sa signature :

<code class="go">func Printf(format string, a ...interface{}) (n int, err error)</code>
Copier après la connexion

En convertissant v en []interface{}, elle s'aligne sur l'attente de la fonction :

<code class="go">s := []interface{}{"a", "b", "c", "d"}
fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3])

v := s[1:]
fmt.Printf("%5s %4s %3s\n", v...)</code>
Copier après la connexion

Cette approche génère la sortie souhaitée sans l'erreur « impossible d'utiliser v (type []string) comme type []interface {} dans l'argument de fmt.Printf ».

Tandis que [] interface{} et []string ne sont pas convertibles, il est possible de convertir manuellement une []string en []interface{} si nécessaire :

<code class="go">ss := []string{"a", "b", "c"}
is := make([]interface{}, len(ss))
for i, v := range ss {
    is[i] = v
}</code>
Copier après la connexion

En suivant ces techniques, les développeurs peuvent facilement passer des paramètres variables à Sprintf, rendant leur code plus efficace et réduisant le passe-partout associé à la spécification de variables individuelles.

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