Heim > Backend-Entwicklung > Golang > Wie erreicht man in Go mehrere Zuweisungen aus Arrays?

Wie erreicht man in Go mehrere Zuweisungen aus Arrays?

Linda Hamilton
Freigeben: 2024-11-12 11:35:01
Original
370 Leute haben es durchsucht

How to Achieve Multiple Assignments from Arrays in Go?

Mehrere Zuweisungen aus Arrays in Go

In Python kann das Entpacken aus Arrays elegant mit Zuweisungen wie:

a, b = "foo;bar".split(";")
Nach dem Login kopieren
erfolgen

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]
}
Nach dem Login kopieren

Sie können dann direkt aus dem Funktionsaufruf zuweisen:

name, link := splitLink("foo\thttps://bar", "\t")
Nach dem Login kopieren

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
    }
}
Nach dem Login kopieren

Dadurch können Sie mehreren Variablen Werte zuweisen:

var name, link string
unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage