返回变量而不是值

时间:2011-11-13 04:25:03

标签: ruby variables each

我很好奇.each方法的一个功能。

a = 1 
b = 2

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

ruby​​有没有办法返回变量“a”而不是值1?

1 个答案:

答案 0 :(得分:4)

它不返回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"
相关问题