你如何使用刚定义的'下一个哈希值中的哈希值

时间:2015-03-13 23:52:04

标签: ruby hash hashtable

如果我正在创建哈希:

h = {
  a: 5,
  b: a + 1
}

如何使用a的值在ruby语法中为b定义值?

3 个答案:

答案 0 :(得分:5)

一种方法是使用临时变量:

h = {
  a: x = 5,
  b: x + 1
}

答案 1 :(得分:2)

这个怎么样:

h = {a: 5}.tap{|h| h[:b] = h[:a] + 1}
# => {:a=>5, :b=>6}

答案 2 :(得分:1)

我会以老式的方式做到这一点而不诉诸任何可爱的技巧:

h = {}
h[:a] = 5
h[:b] = h[:a] + 1

puts h #=> {:a => 5, :b => 6}