package main
import (
"fmt"
"strings"
)
func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
me donne une erreur de:
prog.go: 10: ne peut pas utiliser reg (chaîne de type [3]) comme chaîne de type [] dans l'argument de strings.Join
Existe-t-il un moyen plus direct/meilleur que de boucler et d’ajouter un var?
Le titre de votre question est:
Comment joindre une tranche de chaînes en une seule chaîne?
mais en fait, reg
est non une tranche, mais un tableau de longueur trois. [...]string
n'est qu'un sucre syntaxique pour (dans ce cas) [3]string
.
Pour obtenir une tranche réelle, vous devez écrire:
reg := []string {"a","b","c"}
(Essayez-le: https://play.golang.org/p/vqU5VtDilJ .)
Incidemment, si vous avez vraiment besoin de joindre un tableau de chaînes en une seule chaîne, vous pouvez obtenir une tranche du tableau en ajoutant [:]
, comme suit:
fmt.Println(strings.Join(reg[:], ","))
(Essayez-le: https://play.golang.org/p/zy8KyC8OTuJ .)
Utilisez une tranche, pas un tableau. Il suffit de le créer en utilisant
reg := []string {"a","b","c"}
Une alternative aurait été de convertir votre tableau en une tranche lors de la jointure:
fmt.Println(strings.Join(reg[:],","))
Lire le blog Go sur les différences entre les tranches et les tableaux .
Pour corder
import strings
stringFiles := strings.Join(fileSlice[:], ",")
Retour à Slice again
import strings
fileSlice := strings.Split(stringFiles, ",")