gpt4 book ai didi

ruby - 包含 ruby​​ 模块层次结构的一部分

转载 作者:行者123 更新时间:2023-12-04 16:57:42 25 4
gpt4 key购买 nike

如果我有一堆看起来像的类:

 module A
module B
module C
module D
class SpecificClass1
end
end
end
end
end

我不想像这样引用这个类
 instance = A::B::C::D::SpecificClass1.new

一种方法是这样做:
include A::B::C::D
instance = SpecificClass1.new

如果我想做这样的事情怎么办:
include A::B
instance = C::D::SpecificClass1.new

为什么这不起作用?它返回:
uninitialized constant C::D (NameError)

有没有办法有效地做我正在尝试的事情?

最佳答案

来自 irb session :

module A
module B
module C
module D
class SpecificClass1
end
end
end
end
end

=> nil
2.1.0 :011 > A::B::C::D::SpecificClass1.new
=> #<A::B::C::D::SpecificClass1:0x0000010248f3c0>
2.1.0 :012 > include A::B::C::D
=> Object
2.1.0 :013 > instance = SpecificClass1.new
=> #<A::B::C::D::SpecificClass1:0x00000103803b40>

2.1.0 :011 > include A::B
=> Object
2.1.0 :012 > instance = C::D::SpecificClass1.new
=> #<A::B::C::D::SpecificClass1:0x0000010247b848>

关于ruby - 包含 ruby​​ 模块层次结构的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27992351/

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