当我编写对象类中缺少的方法时,每个接口的输出都不同。
代码是
class Object
def method_missing(hgh)
puts self
end
end
当我像irb一样使用REPL时,我得到
当我使用命令行时,我没有收到任何错误,任何原因都将有所帮助,在此先感谢
当您从命令行运行代码时:
ruby script.rb
而像IRB
r这样的REPL则需要您输入,e对其进行评估,并p将其插入
l oop。在这种情况下,[[e
从字面上评估您的代码破坏了REPL并导致随后的[[p rint失败。]]现在您可能对此有些困惑。 “在两种情况下都有打印件,我使用puts
!”。我在这里指的是每次[[e评估后都可以看到的结果。在这种情况下,方法定义结果(=> :method_missing
)。它可能不仅是p本身。 REPL必须执行许多其他代码以保持状态,例如“在哪一行上定义了什么代码”
等。
考虑您刚才所做的事情-使every对象具有every
方法可能返回nil
。这不仅是针对您编写
in REPL的代码。它也用于REPL本身的代码[[of。