ruby - 如何将 var 分配给哈希?

标签 ruby ruby-on-rails-3 hash

我该怎么做:

{:foo => ['foo', 'bar'] } 

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

{:1234 => ['foo', 'bar'] }

最佳答案

您是否尝试过使用:

{foo => ['foo', 'bar'] }

这将导致哈希元素为:

{123 => ['foo', 'bar'] }

并且可以使用 123foo 从散列中访问。


你也可以在 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]}

关于ruby - 如何将 var 分配给哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8771786/

相关文章:

ruby - Mechanize 获取文件而不是页面对象

ruby-on-rails - 为什么 Heroku 拒绝这个 git push?

ruby - 为什么 $ 不匹配\r\n

mysql - Rails 3 SQL 查询选择与连接

python - 在 Python 中加密字符串。限制字符只能使用字母数字

javascript - 多次运行 sha512 哈希函数的好处

ruby - 在Ruby中,scan()是唯一可以返回多个正则表达式匹配结果的函数吗?

validation - 如何在 Rails 3 中实现最小/最大验证器?

ruby-on-rails - 预加载 : The right way to do things

hash - 在 Raku 中对哈希键和值使用 any 或 none