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
DDDoriginal
2024-10-29 10:01:291058parcourir

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>

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>

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

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:
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