Ruby 为什么NameError在第二个(不是第一个)位置的祖先中有NameError?
当我试图完全理解NoMethodError和NameError之间的区别时,我发现NameError在祖先中不在0位置。你的意思是说这是Ruby 为什么NameError在第二个(不是第一个)位置的祖先中有NameError?,ruby,Ruby,当我试图完全理解NoMethodError和NameError之间的区别时,我发现NameError在祖先中不在0位置。你的意思是说这是的魔力吗 [1] pry(main)> NameError.ancestors => [DidYouMean::Correctable, NameError, StandardError, Exception, ActiveSupport::Dependencies::Blamable, ActiveSupport::ToJsonWithA
的魔力吗
[1] pry(main)> NameError.ancestors
=> [DidYouMean::Correctable,
NameError,
StandardError,
Exception,
ActiveSupport::Dependencies::Blamable,
ActiveSupport::ToJsonWithActiveSupportEncoder,
Object,
ActiveSupport::Dependencies::Loadable,
PP::ObjectMixin,
Nori::CoreExt::Object,
JSON::Ext::Generator::GeneratorMethods::Object,
ActiveSupport::Tryable,
Kernel,
BasicObject]
顺便说一句:对于不知道NoMethodError
和namererror
之间区别的人<代码>名称错误
在尝试访问可能是局部变量的内容时引发,例如
(pry)> foo # this can be both - local variable or method => NameError
(pry)> Object.foo # this is 100% method => NoMethodError
这是你的意思吗
不,只是普通的红宝石。这就是当你离开时发生的事情
NameError.prepend DidYouMean::Correctable
KeyError.prepend DidYouMean::Correctable