Maison > développement back-end > Golang > Comment transmettre des paramètres variables à Sprintf in Go avec des tranches de chaînes ?

Comment transmettre des paramètres variables à Sprintf in Go avec des tranches de chaînes ?

Patricia Arquette
Libérer: 2024-10-29 00:40:02
original
299 Les gens l'ont consulté

How to Pass Variable Parameters to Sprintf in Go with Slices of Strings?

Passer des paramètres de variable à Sprintf dans Go

Dans Go, la fonction Sprintf s'attend à ce que ses arguments variables soient de type []interface{} . Cela peut constituer une limitation lorsque vous travaillez avec des tranches d'autres types, telles que []string.

Considérez le code suivant, qui tente de transmettre une tranche de chaînes à Sprintf :

<code class="go">s := []string{"a", "b", "c", "d"}
fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3])</code>
Copier après la connexion

L'exécution de ce code entraînera l'erreur suivante :

cannot use v (type []string) as type []interface {} in argument to fmt.Printf
Copier après la connexion

Pour résoudre cette erreur, la tranche doit être convertie en type []interface{}. Cela peut être fait manuellement, comme indiqué ci-dessous :

<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

Alternativement, une tranche de chaînes peut être déclarée comme []interface{} dès le début :

<code class="go">is := []interface{}{"a", "b", "c"}</code>
Copier après la connexion

Avec la tranche converti au type correct, Sprintf peut maintenant être utilisé pour formater les arguments de la variable :

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

Sortie :

b    c   d
Copier après la connexion

En convertissant la tranche de chaînes en []interface{}, il devient possible de transmettre facilement plusieurs arguments à Sprintf.

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