„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 die Funktionalität des Listenverständnisses in Go erreichen?

Wie kann ich die Funktionalität des Listenverständnisses in Go erreichen?

Veröffentlicht am 10.11.2024
Durchsuche:331

How Can I Achieve List Comprehension Functionality in Go?

Go Equivalent für Pythons Listenverständnis

Pythons Listenverständnis bietet eine übersichtliche Möglichkeit, Listen durch Filtern und Transformieren von Elementen zu generieren. Wenn Sie jedoch auf Go umsteigen und es schwierig finden, diese Funktionalität zu reproduzieren, finden Sie hier eine Lösung:

Elegante Lösung mit Filterpaket

Zum Glück die Go-Community hat das Filterpaket bereitgestellt, das ähnliche Funktionen wie Pythons Listenverständnis bietet. Insbesondere benötigt die Funktion „Wählen“ ein Slice und eine Filterfunktion und gibt ein neues Slice zurück, das nur die Elemente enthält, die den Filter passieren.

import "github.com/rogpeppe/go-internal/filter"

func Choose(slice []T, fn func(T) bool) []T

Beispiel:

// Get even numbers from a list
a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
expect := []int{2, 4, 6, 8}
result := filter.Choose(a, isEven)

Alternativer Ansatz: For-Schleifen

Während das Filterpaket Komfort bietet, ist es wichtig zu beachten, dass die Verwendung traditioneller For-Schleifen ist immer noch eine praktikable und effiziente Option. Go's for-Schleifen bieten Flexibilität und Optimierungsmöglichkeiten.

for i := range a {
    if someCondition {
        result = append(result, a[i])
    }
}

Fazit

Trotz des Fehlens einer nativen Listenverständnissyntax in Go bieten das Filterpaket und for-Schleifen robuste Lösungen zum Filtern und Transformieren von Listen. Während das Filterpaket eine prägnante Syntax bietet, bleiben for-Schleifen eine leistungsfähige und effiziente Alternative. Letztendlich hängt die Wahl des Ansatzes von den spezifischen Anforderungen Ihrer Anwendung ab.

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