Maison > développement back-end > Golang > Comment transmettre plusieurs variables à la fonction Sprintf de Go à l'aide d'une tranche ?

Comment transmettre plusieurs variables à la fonction Sprintf de Go à l'aide d'une tranche ?

DDD
Libérer: 2024-10-29 10:01:29
original
1072 Les gens l'ont consulté

How to Pass Multiple Variables to Go's Sprintf Function Using a Slice?

Paramètres variables dans Go's Sprintf pour une saisie simplifiée

Problème :

Pour ceux qui préfèrent la commodité, transmettre plusieurs variables à la fonction Sprintf peut être fastidieuse. En essayant de le faire avec une tranche de chaînes, une erreur du type « impossible d'utiliser v (type []string) comme type []interface {} dans l'argument de fmt.Printf » peut survenir.

Solution :

Pour résoudre ce problème, déclarez votre tranche comme []interface{}, en l'alignant sur le type d'argument attendu de Sprintf. La signature de Sprintf précise :

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

Mise en œuvre :

<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

Explication :

  • []interface {} et []string ne peuvent pas être interconvertis.
  • Si vous avez une []string ou si vous utilisez une fonction qui en renvoie une, convertissez-la manuellement en []interface{} en parcourant les éléments et en attribuant chaque chaîne à un élément d'interface {}.

Sortie :

b    c   d
b    c   d
Copier après la connexion

Notes supplémentaires :

Si vous avez besoin plus de 10 paramètres, ajustez simplement le nombre d'éléments dans la tranche selon vos besoins. La solution reste la même.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal