Je suis un débutant dans Go. Je ne trouve aucun document officiel montrant comment fusionner plusieurs chaînes en une nouvelle chaîne.
Ce à quoi je m'attends:
Entrée: "key:"
, "value"
, ", key2:"
, 100
Sortie: "Key:value, key2:100"
Je veux utiliser +
pour fusionner des chaînes comme dans Java et Swift si possible).
J'aime utiliser la méthode Sprintf
de fmt pour ce genre de chose. Cela fonctionne comme la normale Printf
dans Go ou C seulement, il retourne une chaîne. Voici un exemple.
output := fmt.Sprintf("%s%s%s%d", "key:", "value", ", key2:", 100)
Aller docs pour fmt.Sprintf
Vous pouvez utiliser strings.Join, qui est presque 3 fois plus rapide que fmt.Sprintf. Cependant, il peut être moins lisible.
output := strings.Join([]string{"key:", "value", ", key2:", strconv.Itoa(100)}, "")
Voir https://play.golang.org/p/AqiLz3oRVq
strings.Join vs fmt.Sprintf
BenchmarkFmt-4 2000000 685 ns/op
BenchmarkJoins-4 5000000 244 ns/op
Tampon
Si vous devez fusionner un grand nombre de chaînes, utilisez plutôt un tampon que les solutions mentionnées ci-dessus.