Возвращаемая переменная, а не значение - PullRequest
0 голосов
/ 13 ноября 2011

Меня интересует особенность метода .each.

a = 1 
b = 2

[a,b].each do |x|
  puts x
end

Есть ли у ruby ​​способ вернуть переменную "a" вместо значения 1?

1 Ответ

4 голосов
/ 13 ноября 2011

Он не возвращает 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"
...