如何main在Ruby中了解或评估对象?
$ irb
irb(main):001:0> self
=> main
irb(main):002:0> eval "self"
=> main
irb(main):003:0> eval "main"
NameError: undefined local variable or method `main' for main:Object
from (irb):3:in `eval'
from (irb):3:in `eval'
from (irb):3
from /home/malo/.rvm/rubies/ruby-1.9.3-p448/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)
主要约束在于,可以从类,模块或实例中的任何位置评估代码字外壳。因此,它将是普遍的。
要从任何地方访问“主”对象,请使用TOPLEVEL_BINDING:
class MyShell
def main_object
TOPLEVEL_BINDING.eval('self') #=> "main"
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |