gpt4 book ai didi

ruby - 如何在 Ruby 中复制嵌套类结构

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

假设我有一个类 A 如下:

class A
class B
end
class C < B
end
...
end

我想创建一个与 A 具有相同嵌套类结构的类 D

class D
Replicate nested class structure of A here
end

我希望 D 看起来像:

class D
class B
end
class C < B
end
...
end

这样我就可以用不同的结果做 A::B 和 D::B

我怎样才能做到这一点?提前致谢。

最佳答案

class Module
def replicate m
m.constants.each do |sym|
case mm = m.const_get(sym)
when Class then const_set(sym, Class.new(mm.superclass)).replicate(mm)
when Module then const_set(sym, Module.new(mm.superclass)).replicate(mm)
end
end
end
end

class D
replicate A
end

但是 superclass 部分对于这段代码可能不正确。

关于ruby - 如何在 Ruby 中复制嵌套类结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882670/

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