如何将var分配给哈希?

Chr*_*ini 1 ruby hash ruby-on-rails-3

我该怎么做:

{:foo => ['foo', 'bar'] } 
Run Code Online (Sandbox Code Playgroud)

foo是一个实际的变量,它返回123.我真正想做的是:

{:1234 => ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)

the*_*Man 5

你尝试过使用过:

{foo => ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)

这将导致哈希元素:

{123 => ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)

并且可以使用任一散列来访问123foo.


你也可以在Ruby的哈希上玩耍:

foo = 123                    # => 123
{ foo => [1,2] }             # => {123=>[1, 2]}
{ :123 => [1,2] }
SyntaxError: (irb):3: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
{ :123 => [1,2] }
      ^
{ foo.to_sym => [1,2] }
NoMethodError: undefined method `to_sym' for 123:Fixnum

{ foo.to_s.to_sym => [1,2] } # => {:"123"=>[1, 2]}
{ :"123" => [1,2] }          # => {:"123"=>[1, 2]}
Run Code Online (Sandbox Code Playgroud)