В цикле for x in y
x
- это не счетчик, а элемент внутри y
в текущей итерации. Таким образом, используя @array[i].value
, вы по существу делаете @array[@array[i].value].value
, который выдает ошибку типа.
Вы хотите сделать что-то вроде этого:
for a in @array
if a.value > num2
num2 = a.value
j = i # what is this?
end
end
Или вы также можете использовать что-то вроде@array.length.times do |i|
, если вы хотите использовать i
в качестве счетчика.