如何在 Ruby 1.8 中使用枚举器运行代码?

发布于 2024-10-11 13:55:51 字数 149 浏览 3 评论 0原文

我有这样的代码

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

,但它不起作用

我知道枚举器在 Ruby 1.8 中可以作为扩展使用。如何安装?(我是ruby新手)

I have code like this

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

and it doesn't work

I understand that the enumerator is available in Ruby 1.8 as an extension. How to install it?(I'm new to ruby)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天生の放荡 2024-10-18 13:55:51

如果我修正了拼写错误,它就可以正常工作。接下来是 IRB 会议。

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

测试于

>> VERSION
=> "1.8.7"

If I fix the typo it works fine. irb session follows.

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

Tested in

>> VERSION
=> "1.8.7"
尹雨沫 2024-10-18 13:55:51

您正在运行什么版本的 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,支持“下一步”。

What version of ruby 1.8 are you running? This matters significantly.

(Also note that you have a typo in "my_emum").

In Ruby 1.8.6 , there is no "next" method for enums, just "each".
Example:

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

In Ruby 1.8.7, "next" is supported.

你的他你的她 2024-10-18 13:55:51

这个答案针对另一个问题,在 Ruby 1.8.6 中,您可以执行此操作,

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

但我不知道它是否允许您执行 my_enum.next

我认为文档位于 http://ruby-doc.org/stdlib/libdoc /enumerator/rdoc/ ,但现在似乎已关闭。

As mentioned in this answer to a different question, in Ruby 1.8.6, you can do

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

But I don't know if it'll allow you to do my_enum.next.

I think the documentation is at http://ruby-doc.org/stdlib/libdoc/enumerator/rdoc/ , but it seems to be down right now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文