我正在研究IronRuby中的一些东西,但我遇到了一些障碍。这段代码:
def func
b = @b
b.each_with_index do |element, index|
<some stuff in here>
end
end
给出以下错误:
./myfile.rb:<line number>:in 'func': wrong number of arguments (0 for 1) (ArgumentError)
from IronRuby.Libraries:0:in '<EachWithIndex>b__9'
from IronRuby.Libraries:0:in 'each'
from IronRuby.Libraries:0:in 'Each'
from ./myfile.rb:<line number>:in 'each_with_index'
from ./myfile.rb:<line number>:in 'func'
我在这里做错了吗?我正在使用IronRuby 1.0(.NET 2.0版本)。这可能是一件非常明显的事情,但我一直无法找到答案。
作为一个注释:我已经在那里抛出了一堆puts语句,而b肯定是一个数组,所以它并不像我试图在它不应该工作的东西上做这个。
答案 0 :(得分:1)
啊,我想通了,IronRuby的目标是Ruby 1.8.6,显然each_for_index没有返回1.8.6的枚举器。我把它改成了:
require 'enumerator'
b.enum_for(:each_with_index) do |element, index|
似乎工作正常。