gpt4 book ai didi

ruby - 如何从扩展类或包含模块中的类方法访问父类的字符串名称

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:21 24 4
gpt4 key购买 nike

我的问题基本上是这样的:

module Foo
class Bar
def self.who
self.class.to_s
end
end
end

class World < Foo::Bar

end

当我调用 World.who 时,我没有得到 "World",而是得到了 "Class"。一些快速的谷歌搜索没有产生任何有用的东西,因此我在这里希望有人知道如何获得正确的类名:)

最佳答案

如果您正在调用 foo.bar,那么在 bar 方法中,self 的值将是 foo。因此,当您调用 World.who 时,who 中的 self 的值是 World。由于 World 是一个类,World.class 将返回 Class,所以这就是您得到的。

要返回 "World" 只需调用 self.to_sself.name (或只是 to_s名称)。

关于ruby - 如何从扩展类或包含模块中的类方法访问父类的字符串名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276158/

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