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

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

Mary-Kate Olsen
Libérer: 2024-11-10 20:10:02
original
1041 Les gens l'ont consulté

How to Achieve Python's List Comprehension Functionality in Go?

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

Dans cet article, nous explorons les moyens de reproduire la compréhension de liste de Python dans Go, en particulier la syntaxe :

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

Utilisation de la bibliothèque de filtres

Go propose une bibliothèque de filtres proposée par Rob Pike. Cette bibliothèque fournit une fonction Choose() qui prend une tranche et une fonction booléenne comme arguments. Il renvoie une nouvelle tranche contenant uniquement les éléments qui répondent à la condition spécifiée.

Par exemple :

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

Avertissements concernant la bibliothèque de filtres

Bien que la bibliothèque de filtres offre une fonctionnalité pratique solution, sa documentation officielle déconseille son utilisation, en raison de sa moindre efficacité par rapport aux boucles for explicites.

Les boucles For comme alternative

La documentation Go recommande d'utiliser les boucles for comme alternative à la liste compréhensions. Ils offrent une solution plus efficace, notamment dans les situations où il faut contrôler l'ordre des opérations ou limiter la génération de données.

Par exemple, le code suivant calcule la valeur minimale dans une boucle imbriquée :

min := min(abs(a[i], b[j]) for i in range(n)
                          for j in range(i, n))
Copier après la connexion

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