gpt4 book ai didi

Ruby 语法、嵌套模块或类

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:32 27 4
gpt4 key购买 nike

我是 Ruby 的新手,但一直在浏览一些源代码。我在一些源代码中遇到了下面显示的那种结构(模块名称,类不是真实的)

module ModuleOne

class MyClass

module CommonModule

# code ....

end # module CommonModule

end # class MyClass

end # module ModuleOne

或者这个例子

module ModuleOne

class MyClass

class MyClassTwo

#code ............

end #class MyClassTwo

end #class MyClass

end #module ModuleOne

到目前为止,根据我的阅读,我知道在模块中包装类,但我还没有听说过上面显示的包装类型(例如模块内的模块或类中的类)。请问,1. 这是很好的做法并且普遍采用吗?2. 以这种方式构建代码有什么好处?

感谢任何意见或指示

戴夫

最佳答案

嵌套是为了封装常量,模块是常量的特例。换句话说,它们用于命名空间。当您希望特定模块只能在特定模块的上下文中访问时,您应该进行嵌套。这样一来,默认情况下该模块将无法从外部访问;您必须在 namespace 前加上前缀才能这样做。当嵌套层数太多,或者模块主体很长时,代码中很难跟上,所以在这种情况下,一个好的方法是编写整个命名空间。

module ModuleOne
...
end

class ModuleOne::MyClass
...
end

class ModuleOne::MyClass::MyClassTwo
...
end

关于Ruby 语法、嵌套模块或类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15292894/

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