如何将我指的是哈希使用字符串的值 - 即
#!/usr/bin/env ruby
foo = Hash.new
bar = "foo"
"#{bar}"["key"] = "value"
结果是
foo:5:in `[]=': string not matched (IndexError)
from foo:5
如何使用吧(富)的值来引用名为foo的哈希?谢谢!
#!/usr/bin/env ruby
foo = Hash.new
bar = "foo"
instance_eval(bar)["key"]="value"
在此背景下eval(bar)
也适用
instance_eval的尝试执行(红宝石代码),你给在当前背景下的第一个参数字符串。
在你的例子,红宝石试图调用字符串#[] =方法。而你不希望:)
希望帮助。
您可以按如下EVAL字符串: -
foo = Hash.new
bar = "foo"
eval "#{bar}[\"key\"]=\"value\""
puts foo # {"key"=>"value"}
请记住,EVAL是邪恶的,但它的工作原理:
>> foo = Hash.new
{}
>> bar = "foo"
=> "foo"
>> eval(bar)["key"] = "value"
=> "value"
>> foo
=> {"key"=>"value"}