我如何使用字符串的值来引用散列 - 即
#!/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/