Heim > Backend-Entwicklung > Golang > Wie erreicht man die Funktionalität des Python-Listenverständnisses in Go?

Wie erreicht man die Funktionalität des Python-Listenverständnisses in Go?

Patricia Arquette
Freigeben: 2024-11-19 04:20:02
Original
666 Leute haben es durchsucht

How to Achieve Python List Comprehension Functionality 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)]
Nach dem Login kopieren

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

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

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!

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