【发布时间】:2011-12-27 22:02:22
【问题描述】:
我对 .each 方法的一个特性很好奇。
a = 1
b = 2
[a,b].each do |x|
puts x
end
ruby 有没有办法返回变量“a”而不是值 1?
【问题讨论】:
-
变量名无关紧要。如果您需要它们,您可能需要一个散列,以便您可以将键映射到值。
我对 .each 方法的一个特性很好奇。
a = 1
b = 2
[a,b].each do |x|
puts x
end
ruby 有没有办法返回变量“a”而不是值 1?
【问题讨论】:
它不返回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"
【讨论】:
each 的返回值。