In Python ist es möglich, einen String zu teilen und ihn Variablen zuzuweisen:
ip, port = '127.0.0.1:5432'.split(':')
aber in Go scheint es nicht zu funktionieren:
ip, port := strings.Split("127.0.0.1:5432", ":")
// assignment count mismatch: 2 = 1
Frage: Wie kann man eine Zeichenfolge teilen und Werte in einem Schritt zuweisen?
splittedString
: =strings.Split("127.0.0.1:5432", ":")
Ans: =splittedString[index]
Sie können auf den Wert der geteiltenAntworten:
Zwei Schritte zum Beispiel:
Ausgabe:
Ein Schritt zum Beispiel:
Ausgabe:
quelle
err
leider zurück von :too many colons in address 2001:0db8:85a3:0000:0000:8a2e:0370:7334
((Da
go
ist flexibel und Sie können Ihren eigenenpython
Stil Split erstellen ...quelle
Die IPv6-Adressen für Felder wie
RemoteAddr
fromhttp.Request
sind wie folgt formatiert: "[:: 1]: 53343"Funktioniert also
net.SplitHostPort
super:Ausgabe ist:
quelle
Hier ist die Definition für Strings.Split
quelle
Es gibt mehrere Möglichkeiten, eine Zeichenfolge zu teilen:
_
Aufteilung basierend auf Struktur:
_
Verwenden Sie jetzt in Ihrem Code wie
ServerDetail.Host
undServerDetail.Port
Wenn Sie eine bestimmte Zeichenfolge nicht teilen möchten, gehen Sie folgendermaßen vor:
und benutze wie
ServerDetail.Host
undServerDetail.Port
.Das ist alles.
quelle
./prog.go:21:4: assignment mismatch: 1 variable but net.SplitHostPort returns 3 values
Was Sie tun, ist, dass Sie eine geteilte Antwort in zwei verschiedene Variablen und Zeichenfolgen akzeptieren. Split () gibt nur eine Antwort zurück und das ist ein Array von Zeichenfolgen. Sie müssen es in einer einzelnen Variablen speichern und können dann den Teil der Zeichenfolge extrahieren, indem Sie den Indexwert eines Arrays abrufen.
Beispiel:
quelle
Als Randnotiz können Sie die Trennzeichen einfügen, während Sie die Zeichenfolge in Go teilen. Verwenden Sie dazu
strings.SplitAfter
wie im folgenden Beispiel.quelle
Golang unterstützt das implizite Entpacken eines Slice nicht (im Gegensatz zu Python) und das ist der Grund, warum dies nicht funktionieren würde. Wie in den oben angegebenen Beispielen müssten wir es umgehen.
Eine Randnotiz:
Das implizite Entpacken erfolgt für verschiedene Funktionen in go:
quelle