Mehrere Zuweisungen aus Arrays in Go
In Python kann das Entpacken aus Arrays elegant mit Zuweisungen wie:
a, b = "foo;bar".split(";")
Go unterstützt ein solches allgemeines Ein-/Auspacken nicht. Es gibt jedoch mehrere Möglichkeiten, mehrere Zuweisungen zu erreichen.
Benutzerdefinierte Funktionen:
Ein Ansatz besteht darin, eine benutzerdefinierte Funktion zu erstellen, die mehrere Werte zurückgibt, wie zum Beispiel:
func splitLink(s, sep string) (string, string) { x := strings.Split(s, sep) return x[0], x[1] }
Sie können dann direkt aus dem Funktionsaufruf zuweisen:
name, link := splitLink("foo\thttps://bar", "\t")
Variadic Pointer Argumente:
Eine weitere Option ist die Verwendung variadischer Zeigerargumente:
func unpack(s []string, vars... *string) { for i, str := range s { *vars[i] = str } }
Dadurch können Sie mehreren Variablen Werte zuweisen:
var name, link string unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
Wahl des Ansatzes:
Der Ansatz mit benutzerdefinierten Funktionen ist möglicherweise für häufige Szenarien, in denen Sie Ich möchte nur zwei Variablen aufteilen und zuweisen. Für komplexere Array-Szenarien oder Array-Szenarien variabler Größe ist der Ansatz mit variadischen Zeigerargumenten möglicherweise flexibler.
Das obige ist der detaillierte Inhalt vonWie erreicht man in Go mehrere Zuweisungen aus Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!