Maison > développement back-end > Golang > le corps du texte

Comment puis-je obtenir la fonctionnalité de compréhension de liste dans Go ?

DDD
Libérer: 2024-11-10 11:51:02
original
846 Les gens l'ont consulté

How Can I Achieve List Comprehension Functionality in Go?

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

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

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal