Go Equivalent pour la compréhension de liste de Python
La compréhension de liste de Python offre un moyen concis de générer des listes en filtrant et en transformant des éléments. Cependant, si vous effectuez la transition vers Go et que vous avez du mal à reproduire cette fonctionnalité, voici une solution :
Solution élégante utilisant le package de filtres
Heureusement, la communauté Go a fourni le package filter, qui offre des fonctionnalités similaires à la compréhension de liste de Python. Plus précisément, sa fonction Choose prend une tranche et une fonction de filtrage, renvoyant une nouvelle tranche contenant uniquement les éléments qui passent le filtre.
import "github.com/rogpeppe/go-internal/filter" func Choose(slice []T, fn func(T) bool) []T
Exemple :
// Get even numbers from a list a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} expect := []int{2, 4, 6, 8} result := filter.Choose(a, isEven)
Alternative Approche : For Loops
Bien que le package de filtres soit pratique, il est important de noter que l'utilisation de boucles for traditionnelles reste une solution. option viable et efficace. Les boucles for Go offrent flexibilité et opportunités d'optimisation.
for i := range a { if someCondition { result = append(result, a[i]) } }
Conclusion
Malgré le manque de syntaxe native de compréhension de liste dans Go, le package de filtres et les boucles for offrent des solutions de filtrage et de transformation de listes. Bien que le package filter fournisse une syntaxe concise, les boucles for restent une alternative performante et efficace. En fin de compte, le choix de l'approche dépendra des exigences spécifiques de votre application.
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!