在irb中,为什么有预定义的变量"d"?

pit*_*las 1 ruby irb

由于某种原因,d在我输入irb后立即定义了一个名为变量的变量.知道它是什么?

Mic*_*ohl 6

irbtools有机会使用吗?如果是,则会调用一个预定义的方法d,大致如下所示:

def d
  self.tap { |v| puts v }
end
Run Code Online (Sandbox Code Playgroud)

它可用于调试消息链,如下所示:obj.some_method.d.other_method.

因为它是在Object关卡中定义的,所以如果你只是在它返回的IRB顶层调用它,它应该可以工作main.