ruby - 尝试使用 Ruby 中的字符串值引用哈希

标签 ruby string variables hash string-interpolation

我如何使用字符串的值来引用散列 - 即

#!/usr/bin/env ruby
foo = Hash.new
bar = "foo"
"#{bar}"["key"] = "value"

结果

 foo:5:in `[]=': string not matched (IndexError)
 from foo:5

如何使用 bar (foo) 的值来引用名为 foo 的散列?谢谢!

最佳答案

#!/usr/bin/env ruby
foo = Hash.new
bar = "foo"
instance_eval(bar)["key"]="value"

在此上下文中 eval(bar) 也有效

instance_eval 尝试执行(作为 ruby​​ 代码)您在当前上下文中的第一个参数中给出的字符串。

在您的示例中,Ruby 试图调用 String#[]= 方法。你不想要那个:)

希望对您有所帮助。

关于ruby - 尝试使用 Ruby 中的字符串值引用哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2913795/

相关文章:

ruby - Chef - 在 Recipe 之间共享库

ruby-on-rails - 我必须为 Heroku 上的自定义域 SSL 付费才能摆脱警告标志,对吧?

java - 可变长度参数可以替代一维数组吗?

java - 尝试返回一个无法解析为变量的变量

ruby - 有没有办法在 Sublime Text 2 中保存时验证 ruby​​ 语法?

ruby-on-rails - 无法在 OS X Mavericks 中安装 gem 'therubyracer'

java - 新创建的字符串将在哪里?堆内存还是字符串常量池?

r - 字符串匹配不同大小的 data.frames

c - strcmp(s1,s2) 是否只比较 s1 和 s2 的第一个不相等的字符值?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP