礼貌的irb:
2.0.0-p0 :006 > @instance_variable = "from an instance variable"
=> "from an instance variable"
2.0.0-p0 :007 > variable = "from a variable"
=> "from a variable"
2.0.0-p0 :008 > instance_variable_get(:@instance_variable)
=> "from an instance variable"
2.0.0-p0 :009 > variable_get(:variable)
NoMethodError: undefined method `variable_get' for main:Object
from (irb):9
from /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in `<main>'
2.0.0-p0 :010 >
Run Code Online (Sandbox Code Playgroud)
我只是试图以编程方式"查询"变量并返回其内容.与instance_variable_get完全相同,但对于变量.
这是一个自定义的rspec匹配器.不是一些疯狂的解决方法:)
Chu*_*uck 13
在Ruby 2.1及更高版本中,您可以使用Binding#local_variable_get.
在Ruby的早期版本中,您必须使用eval.如果要在评估假定的变量名之前进行一些完整性检查,可以检查命名变量是否在local_variables.
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |