Maison > développement back-end > Golang > Comment obtenir la fonctionnalité de compréhension de liste Python dans Go ?

Comment obtenir la fonctionnalité de compréhension de liste Python dans Go ?

Patricia Arquette
Libérer: 2024-11-19 04:20:02
original
660 Les gens l'ont consulté

How to Achieve Python List Comprehension Functionality in Go?

Équivalent à la compréhension de liste Python dans Go

La compréhension de liste Python fournit un moyen concis de filtrer et de transformer des séquences. Dans Go, la fonction de filtre peut être utilisée pour obtenir des fonctionnalités similaires. Cependant, les boucles for peuvent offrir une approche plus efficace et plus simple.

Pour reproduire la compréhension de la liste Python :

array = [a for a in anotherArray  if (some condition)]
Copier après la connexion

Dans Go, vous pouvez utiliser la fonction de filtre suivante :

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]
}
Copier après la connexion

La fonction filtre prend deux arguments : la séquence à filtrer et une fonction prédicat qui détermine les éléments à inclure. Il renvoie une tranche contenant uniquement les éléments qui satisfont le prédicat.

Pour des expressions plus complexes, vous pouvez utiliser des fonctions lambda, similaires à l'exemple Python :

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
        }
    }
}
Copier après la connexion

Cependant, le GoDoc pour la bibliothèque de filtres indique que les boucles for sont plus efficaces et préférables au package. Par conséquent, pour des raisons de simplicité et de lisibilité, l'utilisation de boucles for est recommandée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal