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 einen direkteren / besseren Weg als das Schleifen und Hinzufügen zu einer Var?
reg := []string {"a","b","c"}
?Antworten:
Der Titel Ihrer Frage lautet:
Tatsächlich
reg
handelt es sich jedoch nicht um ein Slice, sondern um ein Array mit der Länge drei.[...]string
ist nur syntaktischer Zucker für (in diesem Fall)[3]string
.Um ein tatsächliches Slice zu erhalten, sollten Sie schreiben:
(Probieren Sie es aus: https://play.golang.org/p/vqU5VtDilJ .)
Übrigens, wenn Sie jemals wirklich ein Array von Zeichenfolgen zu einer einzelnen Zeichenfolge zusammenfügen müssen, können Sie ein Slice aus dem Array abrufen
[:]
, indem Sie Folgendes hinzufügen :(Probieren Sie es aus: https://play.golang.org/p/zy8KyC8OTuJ .)
quelle
Verwenden Sie eine Scheibe, keine Arrray. Erstellen Sie es einfach mit
Eine Alternative wäre gewesen, Ihr Array beim Verbinden in ein Slice zu konvertieren:
Lesen Sie den Go-Blog über die Unterschiede zwischen Slices und Arrays .
quelle
Dies ist auch 2018 noch relevant.
Zu String
Wieder zurück zu Slice
quelle