Création d'itérateurs dans Go : canaux, fermetures et types nommés
Dans Go, différentes approches existent pour créer des itérateurs. Une option populaire consiste à utiliser des canaux qui ressemblent à des itérateurs. Cependant, les canaux souffrent de limites, notamment en raison du fait qu'ils sont un modèle push plutôt qu'un modèle pull, ce qui entraîne des fuites potentielles.
Une approche idiomatique consiste à utiliser des fermetures. L'exemple suivant montre comment créer un itérateur pour générer des nombres pairs :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Une autre option consiste à utiliser des types nommés avec des méthodes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Le choix entre les fermetures et les types nommés dépend de besoins spécifiques. Les fermetures offrent de la flexibilité, tandis que les types nommés peuvent offrir une approche plus structurée.
De plus, le chaînage des itérateurs est simple dans Go car les fonctions sont des objets de première classe. L'exemple suivant enchaîne un générateur de nombres pairs avec une fonction carrée :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
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!