我有这样的代码
my_enum = [1,2].to_enum
puts my_emum.next
它不起作用
我知道枚举器在 Ruby 1.8 中作为扩展可用。如何安装它?(我是红宝石新手)
我有这样的代码
my_enum = [1,2].to_enum
puts my_emum.next
它不起作用
我知道枚举器在 Ruby 1.8 中作为扩展可用。如何安装它?(我是红宝石新手)
如果我修正错字,它工作正常。irb 会议如下。
>> my_enum = [1,2].to_enum
=> #<Enumerable::Enumerator:0xb79dd700>
>> puts my_enum.next
1
>> puts my_enum.next
2
经测试
>> VERSION
=> "1.8.7"
您正在运行哪个版本的 ruby 1.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中,支持“下一步”。
如this answer to a different question中所述,在Ruby 1.8.6中,您可以这样做
require 'enumerator'
6.enum_for(:times).map {...}
但我不知道它是否允许你这样做my_enum.next
。
我认为文档位于http://ruby-doc.org/stdlib/libdoc/enumerator/rdoc/,但现在似乎已关闭。