In Python ist das Aufteilen eines Strings und das Zuweisen seiner Komponenten zu Variablen mithilfe der Split-Methode ganz einfach. In Go scheint der Versuch eines ähnlichen Ansatzes jedoch aufgrund einer Nichtübereinstimmung der Zuweisungsanzahl zu scheitern.
Wie können wir eine Zeichenfolge effektiv aufteilen und zuweisen? Werte auf mehrere Variablen in einer einzigen Operation in Go übertragen?
Es gibt zwei Möglichkeiten Ansätze:
Zweistufiger Ansatz:
Bei dieser Methode teilen wir zunächst den String mithilfe von strings.Split auf und weisen dann die resultierenden Slice-Elemente Variablen zu:
package main import ( "fmt" "strings" ) func main() { s := strings.Split("127.0.0.1:5432", ":") ip, port := s[0], s[1] fmt.Println(ip, port) }
Ein-Schritt-Ansatz mit net.SplitHostPort:
Go bietet eine integrierte Funktion net.SplitHostPort, die speziell für die Aufteilung von Zeichenfolgen, die Netzwerkadressen darstellen, in Host- und Portkomponenten entwickelt wurde:
package main import ( "fmt" "net" ) func main() { host, port, err := net.SplitHostPort("127.0.0.1:5432") fmt.Println(host, port, err) }
Das obige ist der detaillierte Inhalt vonWie teilt man Strings effizient auf und weist Variablen in Go zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!