gpt4 book ai didi

ruby - 在 Ruby 2.3.1 中列出子类

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:16 24 4
gpt4 key购买 nike

我有以下方法来收集子类列表。由于各种原因,我无法使用 ActiveSupport DescendantsTracker .

def self.descendants
unless @subclasses
@subclasses = []
ObjectSpace.each_object(Class) do |subclass|
if subclass < self # && other conditions
@subclasses << subclass.to_s.split('::').last
end
end
end
@subclasses
end

随着升级到 ruby​​ 2.3.1(虽然可能不相关),列表开始间歇性地包含以前没有见过的值,就像这样

"#<Class:#<FairPlay::TLLV::ProtocolVersionsSupported:0x00000003566730>>"

第一个问题是这表示什么?我会很感激指针开始。

关于间歇性 - 这仅出现在测试 (RSpec) 中,并且仅当测试用例未单独运行时才会出现。所以我怀疑 RSpec,但仍然想知道背后是什么。

谢谢!

最佳答案

这是 eigenclass FairPlay::TLLV::ProtocolVersionsSupported 类对象的。相关对象的 ID 为 0x00000003566730/2

你是想在这样的实例上定义一个方法/你是在模拟一个方法吗?如果您不知道或什至不知道这个类/对象是关于什么的,我建议您在运行时跟踪它。

它很可能与 rspec 有关,但它可能涉及很多方面。 Ruby 版本不是它。

关于ruby - 在 Ruby 2.3.1 中列出子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918389/

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