0

私はこのようなコードを持っています

my_enum = [1,2].to_enum
puts my_emum.next

そして、それは機能しません

列挙子は Ruby 1.8 で拡張機能として使用できることを理解しています。インストール方法は? (私はルビーが初めてです)

4

3 に答える 3

2

タイプミスを修正すれば、問題なく動作します。irbセッションが続きます。

>> my_enum = [1,2].to_enum
=> #<Enumerable::Enumerator:0xb79dd700>
>> puts my_enum.next
1
>> puts my_enum.next
2

でテスト済み

>> VERSION
=> "1.8.7"
于 2011-01-12T22:08:03.173 に答える
2

どのバージョンのruby1.8を実行していますか?これは非常に重要です。

(「my_emum」にタイプミスがあることにも注意してください)。

Ruby 1.8.6では、列挙型の「次の」メソッドはなく、「それぞれ」だけです。例:

my_enum = [1,2].to_enum
my_enum.each do |e|
  puts e
end

Ruby 1.8.7では、「next」がサポートされています。

于 2011-01-12T22:10:05.107 に答える
1

別の質問に対するこの回答で述べたように、Ruby 1.8.6では、次のことができます。

require 'enumerator'
6.enum_for(:times).map {...}

しかし、それがあなたにできるかどうかはわかりませんmy_enum.next

ドキュメントはhttp://ruby-doc.org/stdlib/libdoc/enumerator/rdoc/にあると思いますが、現在ダウンしているようです。

于 2011-01-12T22:42:42.413 に答える