„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich Array-Elemente in Go direkt in Variablen entpacken?

Wie kann ich Array-Elemente in Go direkt in Variablen entpacken?

Veröffentlicht am 15.11.2024
Durchsuche:971

How Can I Unpack Array Elements Directly into Variables in Go?

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.

Neuestes Tutorial Mehr>

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