我很好奇.each方法的一个功能。
a = 1
b = 2
[a,b].each do |x|
puts x
end
ruby有没有办法返回变量“a”而不是值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"