我刚刚经历了 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
有什么办法可以访问当前类中的局部变量和实例变量?