在每个内部分配哈希不起作用

时间:2014-08-07 12:59:52

标签: ruby local-variables

此:

(0..8).each do |n|
  "a_#{n}" = {}
end

给我一​​个错误"语法错误,意外' =',期待关键字_end"。我想创建a_0 = {}a_1 = {}a_2 = {}

3 个答案:

答案 0 :(得分:2)

我想你想要一系列哈希。

a = []
(0..8).each do |n|
  a[n] = {}
end

结果:

a #=> [{}, {}, {}, {}, {}, {}, {}, {}, {}]

a[0] #=> {}
a[1] #=> {}
...etc...

虽然取决于您接下来需要做什么,但这种初始化可能不是必需的。

答案 1 :(得分:1)

binding.instance_eval do (0..8).each do |i|
  local_variable_set("a_#{i}", {})
  ...
end end

答案 2 :(得分:0)

没有坏的魔法,你将无法获得你想要的功能(有办法做到这一点,但他们是坏的和hacky)。改为使用散列或数组。