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)]
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) }
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.
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))
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!