package main
import (
"fmt"
"strings"
)
func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
gibt mir einen Fehler von:
prog.go: 10: reg (Typ [3] Zeichenfolge) kann nicht als Typ [] Zeichenfolge im Argument für strings.Join verwendet werden
Gibt es eine direktere/bessere Möglichkeit, als eine Schleife zu erstellen und eine Variable hinzuzufügen?
Der Titel Ihrer Frage lautet:
Wie füge ich ein Stück Saiten zu einer einzigen Saite zusammen?
tatsächlich ist reg
not ein Slice, aber ein Array der Länge drei. [...]string
Ist nur syntaktischer Zucker für (in diesem Fall) [3]string
.
Um eine tatsächliche Scheibe zu erhalten, sollten Sie schreiben:
reg := []string {"a","b","c"}
(Probieren Sie es aus: https://play.golang.org/p/vqU5VtDilJ .)
Übrigens, wenn Sie jemals wirklich ein Array von Strings zu einem einzigen String zusammenfügen müssen, können Sie ein Slice aus dem Array abrufen, indem Sie [:]
Wie folgt hinzufügen:
fmt.Println(strings.Join(reg[:], ","))
(Probieren Sie es aus: https://play.golang.org/p/zy8KyC8OTuJ .)
Verwenden Sie eine Scheibe, kein Array. Erstellen Sie es einfach mit
reg := []string {"a","b","c"}
Eine Alternative wäre gewesen, Ihr Array beim Beitritt in einen Slice umzuwandeln:
fmt.Println(strings.Join(reg[:],","))
Lesen Sie das Go-Blog über die Unterschiede zwischen Slices und Arrays .
Zu String
import strings
stringFiles := strings.Join(fileSlice[:], ",")
Zurück zu Slice
import strings
fileSlice := strings.Split(stringFiles, ",")