【问题标题】:Return variable rather than the value返回变量而不是值
【发布时间】:2011-12-27 22:02:22
【问题描述】:

我对 .each 方法的一个特性很好奇。

a = 1 
b = 2

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

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

【问题讨论】:

  • 变量名无关紧要。如果您需要它们,您可能需要一个散列,以便您可以将键映射到值。

标签: ruby variables each


【解决方案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 的返回值。
  • @muistooshort 是的,添加了一条评论,之后才意识到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-01
  • 2019-11-07
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多