Heim >Backend-Entwicklung >Golang >Wie erreicht man die Funktionalität des Python-Listenverständnisses in Go?
Python-Listenverständnis-Äquivalent in Go
Pythons Listenverständnis bietet eine prägnante Möglichkeit, Sequenzen zu filtern und zu transformieren. In Go kann die Filterfunktion verwendet werden, um eine ähnliche Funktionalität zu erreichen. For-Schleifen bieten jedoch möglicherweise einen effizienteren und unkomplizierteren Ansatz.
Um das Python-Listenverständnis zu reproduzieren:
array = [a for a in anotherArray if (some condition)]
In Go können Sie die folgende Filterfunktion verwenden:
import ( "fmt" "math" "math/big" ) func main() { anotherArray := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} newArray := filter(anotherArray, func(a int) bool { return a%2 == 0 }) fmt.Println(newArray) // [2 4 6 8] }
Die Filterfunktion benötigt zwei Argumente: die zu filternde Sequenz und eine Prädikatfunktion, die bestimmt, welche Elemente eingeschlossen werden sollen. Es gibt ein Slice zurück, das nur die Elemente enthält, die das Prädikat erfüllen.
Für komplexere Ausdrücke können Sie Lambda-Funktionen verwenden, ähnlich dem Python-Beispiel:
min := func() *big.Int { a := big.NewInt(0) return a }() for i := 0; i < n; i++ { for j := i; j < n; j++ { potentialMin := big.NewInt(0) potentialMin.Abs(a[i].Sub(a[i], b[j])) if potentialMin.Cmp(min) == -1 { min = potentialMin } } }
Allerdings ist das GoDoc für Die Filterbibliothek weist darauf hin, dass for-Schleifen effizienter und dem Paket vorzuziehen sind. Aus Gründen der Einfachheit und Lesbarkeit wird daher die Verwendung von for-Schleifen empfohlen.
Das obige ist der detaillierte Inhalt vonWie erreicht man die Funktionalität des Python-Listenverständnisses in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!