ruby - 命名 Ruby 类和将其包装在模块中有什么区别?
问题描述
class Baz
end
module Foo
end
module Foo
class Bar1 < Baz
# ...
end
end
class Foo::Bar2 < Baz
# ...
end
我曾想过Bar1
并且Bar2
应该表现相同,因为我认为包装类声明module Foo...end
和命名类Foo::
只是语法变体。但是,我看到这两个在实际应用程序中的行为不同,所以我一定是错的!
Bar1
和之间的行为到底有什么区别(如果有的话)Bar2
?
第二个问题:他们有一个明确声明的超类( )这一事实是否Baz
有所作为,或者这是一个红鲱鱼?
解决方案
推荐阅读
- html - 如何在不使用图像的情况下在 css 中创建曲线
- javascript - 用nodejs处理mysql连接
- c# - 带改装的多部分内容
- asp.net - 'IEnumerable
' 不包含 'Alert_Identifier' ... 和 'IEnumerable 的定义 ' 不包含 'AlertIndex' 的定义 - latex - 使用 paracol 和 \setlength{\columnseprule}{} 改变垂直线的颜色
- spring-boot - Spring Boot 1 Actuator 是否在外部 Tomcat 中工作
- reactjs - 无法使用 Create-React-App 在 github 页面中发布我的反应应用程序 - 控制台出现错误
- r - 带置信区间的滚动回归(tidyverse)
- javascript - 每秒运行一次函数 X 次
- sql - 卡在 SQL Server 过程代码上