У IronRuby есть проблема с each_for_index? - PullRequest
0 голосов
/ 02 сентября 2010

Я работаю над некоторыми вещами в 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).Это, наверное, что-то до смешного очевидное, но я просто не смог найти ответ.

Как примечание: я добавил туда несколько операторов put, а b определенно является массивом, поэтомуне то чтобы я пытался сделать это на чем-то, с чем это не должно работать.

1 Ответ

1 голос
/ 02 сентября 2010

Ах, я понял, IronRuby нацелен на Ruby 1.8.6, и, вероятно, each_for_index не возвращает перечислитель в 1.8.6.Я изменил его на:

require 'enumerator'

b.enum_for(:each_with_index) do |element, index|

и, похоже, работает нормально.

...