由于某种原因,我输入irb后立即定义了一个名为d
的变量。知道它是什么吗?
答案 0 :(得分:6)
您是否有机会使用irbtools
?如果是,则有一个名为d
的预定义方法,大致如下所示:
def d
self.tap { |v| puts v }
end
它可用于调试消息链,如下所示:obj.some_method.d.other_method
。
由于它是在Object
级别定义的,所以如果你只是在IRB顶层调用它,它将会返回main
。
答案 1 :(得分:4)
您可以使用irb
开关运行-f
以暂停加载~/.irbrc
:
irb -f
这会很快告诉您d
是否来自您~/.irbrc
的某个地方(最有可能的是 - 请参阅Michael的回答)。
答案 2 :(得分:2)
不适合我:
$ irb
>> d
NameError: undefined local variable or method `d' for main:Object
from (irb):1