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)

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top