Comment exécuter du code avec recenseur dans Ruby 1.8?
-
10-10-2019 - |
Question
J'ai le code comme ceci
my_enum = [1,2].to_enum
puts my_emum.next
et il ne fonctionne pas
Je comprends que le recenseur est disponible en Ruby 1.8 comme une extension. Comment l'installer? (Je suis nouveau à rubis)
La solution
Comme mentionné dans cette réponse à une autre question, en Ruby 1.8.6, vous pouvez faire
require 'enumerator'
6.enum_for(:times).map {...}
Mais je ne sais pas si ça va vous permettre de faire my_enum.next
.
Je pense que la documentation est à http://ruby-doc.org/ stdlib / libdoc / recenseur / rdoc / , mais il semble être bas en ce moment.
Autres conseils
Si je fixe la faute de frappe, il fonctionne très bien. suit la session RIR.
>> my_enum = [1,2].to_enum
=> #<Enumerable::Enumerator:0xb79dd700>
>> puts my_enum.next
1
>> puts my_enum.next
2
Testé
>> VERSION
=> "1.8.7"
Quelle version de Ruby 1.8 utilisez-vous? Cela est important de manière significative.
(Notez également que vous avez une faute de frappe dans "my_emum").
Ruby 1.8.6 , il n'y a pas de méthode « suivant » pour les énumérations, juste « chaque ». Exemple:
my_enum = [1,2].to_enum
my_enum.each do |e|
puts e
end
Ruby 1.8.7 , "suivant" est pris en charge.