Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么NameError在第二个(不是第一个)位置的祖先中有NameError?_Ruby - Fatal编程技术网

Ruby 为什么NameError在第二个(不是第一个)位置的祖先中有NameError?

Ruby 为什么NameError在第二个(不是第一个)位置的祖先中有NameError?,ruby,Ruby,当我试图完全理解NoMethodError和NameError之间的区别时,我发现NameError在祖先中不在0位置。你的意思是说这是的魔力吗 [1] pry(main)> NameError.ancestors => [DidYouMean::Correctable, NameError, StandardError, Exception, ActiveSupport::Dependencies::Blamable, ActiveSupport::ToJsonWithA

当我试图完全理解NoMethodError和NameError之间的区别时,我发现NameError在祖先中不在0位置。你的意思是说这是
的魔力吗

[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