我该怎么做:
{:foo => ['foo', 'bar'] }
foo
是一个实际变量,它返回 123
。我真正想做的是:
{:1234 => ['foo', 'bar'] }
您是否尝试过使用:
{foo => ['foo', 'bar'] }
这将导致哈希元素为:
{123 => ['foo', 'bar'] }
并且可以使用 123
或 foo
从散列中访问。
你也可以在 Ruby 的 Hashes 上玩花样:
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]}
我是一名优秀的程序员,十分优秀!