【发布时间】:2010-11-15 23:17:00
【问题描述】:
我刚刚经历了 PragProg Continuous Testing With Ruby,他们谈到在当前类的上下文中调用 IRB 来手动检查代码。
然而,他们引用了如果你在一个类中调用IRB.start,self 是预定义的,它指的是我们在调用 start 时所在的对象,它是对我来说不是这样。
即使是非常简单的例子,比如
a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
当我尝试访问 a 变量时,我明白了
NameError: undefined local variable or method `a' for main:Object
仅当我将a 更改为全局变量时才有效
$a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
然后我可以访问它
irb(main):001:0> $a
=> 1
有什么办法可以访问当前类中的局部变量和实例变量吗?
【问题讨论】: