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
890 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!

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