是否可以在另一个类中隐藏一个类?
class A
class B; end
end
我希望B类在A级以外是不可见的
我应该为此做些什么
b = A::B.new
是一个错误
答案 0 :(得分:4)
您可以像这样定义您的内部类:
class A
class B
# ...
end
private_constant :B
# ...
end
这样就可以在课堂内使用。但是当你尝试A::B.new
时会抛出错误:
A::B.new
# NameError: private constant A::B referenced
您可能希望在此blog post中详细了解此内容。