У меня есть этот код в IRB:изменение значения Enumerator в Рубине
2.2.1 :001 > a = 0
=> 0
2.2.1 :002 > b = (a..a+6).step(3)
=> #<Enumerator: 0..6:step(3)>
2.2.1 :004 > puts b.inspect
#<Enumerator: 0..6:step(3)>
=> nil
2.2.1 :005 > a = 1
=> 1
2.2.1 :007 > puts b.inspect
#<Enumerator: 0..6:step(3)>
=> nil
То, что я хочу добиться того, чтобы изменить значение a
с каждой итерации, но a
остается с тем же значением, что еще хуже, Ruby просто меняет значение a
на 0. Есть ли способ объявить динамические перечисления ?, те, которые меняют значения каждый раз, когда меняют значения моих переменных? Спасибо.
Вы хотите, чтобы вы меняли каждый раз, когда меняются изменения? – davidrac
Точно! это возможно? – otrebla
Вы можете сделать что-то вроде этого '@a = 0; def b (x = @ a); (X..x + 6) .step (3); end' – Santhosh