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

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

DDD
Libérer: 2024-11-04 11:40:02
original
960 Les gens l'ont consulté

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

Passer des paramètres variables à Sprintf dans Go

Lorsque vous travaillez avec un grand nombre de paramètres, les transmettre manuellement à Sprintf peut être fastidieux. Heureusement, il existe un moyen de simplifier ce processus.

Problème :

Tenter de transmettre une tranche de chaînes ([]string) directement à Sprintf entraîne une erreur :

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

Solution :

Pour résoudre cette erreur, déclarez la tranche comme type de []interface{} au lieu de []string. Sprintf attend un tableau de paramètres d'interface{}, comme le montre sa signature :

func Printf(format string, a ...interface{}) (n int, err error)
Copier après la connexion

Exemple :

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...)
Copier après la connexion

Sortie (Go Playground) :

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

Remarque :

[]interface{} et []string ne sont pas interchangeables. Si vous disposez d'une []chaîne existante, vous pouvez la convertir manuellement en []interface{} comme suit :

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

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