1
votes

Quel est l'équivalent Ruby de iter () / next () de Python?

En python, je peux obtenir un itérateur à partir de n'importe quel itérateur avec iter () ; puis je peux appeler next (my_iter) pour obtenir l'élément suivant.

Y a-t-il un équivalent dans ruby ​​/ rails?


0 commentaires

3 Réponses :


4
votes

.to_enum donnera l'énumérateur. Pour un exemple, a.to_enum donnera l'énumérateur et vous pouvez l'itérer à partir de là comme a.to_enum.each {| x | p x}.

Ou sans boucle, vous pouvez prendre l'élément comme

p a.to_enum.next


4 commentaires

Mais encore une fois, cela nécessite une construction en boucle (c'est-à-dire chaque ). Comment pouvez-vous obtenir un élément d'une énumération sans cela.


Vous avez dit que vous pouvez appeler Je peux appeler le prochain (my_iter) de même que vous pouvez le faire ici a.to_enum.next ou vous pouvez enregistrer b = a.enum puis b.next


Je vois! Merci, mais vous devriez le mentionner dans la réponse; car next est la réponse réelle.


@mshsayem j'ai ajouté.



0
votes

Il existe de nombreux itérateurs dans Ruby comme suit:

  1. Chaque itérateur
  2. Collecter Iterator
  3. Times Iterator
  4. Jusqu'à Iterator
  5. Downto Iterator
  6. Itérateur d'étape
  7. Each_Line Iterator
  8. Explication des types d'itérateurs

Chaque itérateur: cet itérateur renvoie tous les éléments d'un tableau ou d'un hachage. Chaque itérateur renvoie chaque valeur une par une. Syntaxe:

collection.each do |variable_name|
   # code to be iterate
   continue if condition # equivalent next in python 
end

Dans la syntaxe ci-dessus, la collection peut être la plage, le tableau ou le hachage.

référencé à partir de https://www.geeksforgeeks.org/ruby-types-of-iterators/


1 commentaires

Eh bien, je ne demandais pas de boucle. Chacun des exemples là-bas nécessite en fait une boucle / bloc / proc pour obtenir n'importe quel élément.



0
votes

Sans boucle:

words = %w(one two three four five)

my_iter = words.each

puts my_iter.next  # one
puts my_iter.next  # two

Mais à quoi sert un itérateur qui n'est pas dans une boucle? C'est en quelque sorte leur raison d'être ...


0 commentaires