In diesem Beitrag untersuchen wir Möglichkeiten, Pythons Listenverständnis in Go zu replizieren, insbesondere die Syntax:
array = [a for a in anotherArray if (some condition)]
Go bietet eine von Rob Pike vorgeschlagene Filterbibliothek. Diese Bibliothek stellt eine Funktion Choose() bereit, die ein Slice und eine boolesche Funktion als Argumente verwendet. Es wird ein neues Slice zurückgegeben, das nur Elemente enthält, die die angegebene Bedingung erfüllen.
Zum Beispiel:
import "google.golang.org/x/exp/slices" func TestChoose(t *testing.T) { a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} expect := []int{2, 4, 6, 8} result := slices.Choose(a, isEven) }
Während die Filterbibliothek eine praktische Funktion bietet Lösung, in der offiziellen Dokumentation wird von der Verwendung abgeraten, da die Effizienz im Vergleich zu expliziten for-Schleifen geringer ist.
In der Go-Dokumentation wird die Verwendung von for-Schleifen als Alternative zu list empfohlen Verständnisse. Sie bieten eine effizientere Lösung, insbesondere in Situationen, in denen die Reihenfolge von Operationen kontrolliert oder die Datengenerierung begrenzt werden muss.
Zum Beispiel berechnet der folgende Code den Mindestwert in einer verschachtelten Schleife:
min := min(abs(a[i], b[j]) for i in range(n) for j in range(i, n))
Das obige ist der detaillierte Inhalt vonWie erreicht man die Listenverständnisfunktionalität von Python in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!