Он не возвращает 1
, он возвращает [1, 2]
, метод each
возвращает то, что он повторял.
> a = 1
=> 1
> b = 2
=> 2
> r = [a, b].each { |x| puts x }
1
2
=> [1, 2]
> p r.inspect
"[1, 2]"
Если вы спрашиваете, можете ли вы «вернуться назад» из значения массива или переменной внутри блока итерации, я не понимаю, как это сделать. Если вы перебираете карту с парами ключ / значение, да.
> m = { a: 1, b: 2}
=> {:a=>1, :b=>2}
> m.each { |k, v| p "#{k} = #{v}" }
"a = 1"
"b = 2"