Entpacken von Array-Elementen in Go
Go fehlt die praktische Syntax zum Entpacken von Array-Elementen direkt in Variablen, die in Python zu finden ist. Während der anfängliche Ansatz des Fragestellers mit einer Zwischenvariablen funktioniert, kann er zu unübersichtlichem Code führen, insbesondere in komplexen Szenarien.
Mehrere Rückgabewerte
Um dieses Problem zu beheben, wird Folgendes empfohlen Die Lösung besteht darin, eine Funktion zu erstellen, die mehrere Werte zurückgibt. Um beispielsweise einen String zu teilen und die Ergebnisse in zwei Variablen zu entpacken, kann eine Funktion wie diese verwendet werden:
func splitLink(s, sep string) (string, string) { x := strings.Split(s, sep) return x[0], x[1] }
Mit dieser Funktion kann der folgende Code zum Entpacken des geteilten Strings verwendet werden:
name, link := splitLink("foo\thttps://bar", "\t")
Variadische Zeigerargumente
Ein anderer Ansatz besteht darin, variadische Zeigerargumente zu verwenden, die es ermöglichen, mehrere Zeigervariablen an eine Funktion zu übergeben und ihnen die Werte eines Arrays zuzuweisen. So funktioniert es:
func unpack(s []string, vars... *string) { for i, str := range s { *vars[i] = str } }
Um ein Array zu entpacken, kann der folgende Code verwendet werden:
var name, link string unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
Dieser Ansatz ermöglicht das Entpacken von Arrays beliebiger Größe, erfordert jedoch eine explizite Deklaration der Variablen und wird von einigen Entwicklern als weniger lesbar angesehen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3