gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:19 25 4
gpt4 key购买 nike

虽然我试图完全理解 NoMethodError 和 NameError 之间的区别,但我发现 NameError 在祖先中不在 0 位置。是 DidYouMean 的魔法吗?

[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]

顺便说一句:对于不知道 NoMethodErrorNameError 之间区别的人。 NameError 当您尝试访问可以是局部变量的内容时引发

(pry)> foo # this can be both - local variable or method => NameError
(pry)> Object.foo # this is 100% method => NoMethodError

最佳答案

Is it some magic of DidYouMean?

不,只是普通的 ruby 。当你 use prepend 时会发生这种情况.

NameError.prepend DidYouMean::Correctable
KeyError.prepend DidYouMean::Correctable

关于ruby - 为什么 NameError 在第二个(不是第一个)位置的祖先中有 NameError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com