Ruby Inherit Class在2中的同一模块中分离文件



我想继承一个类-相同的模块,但在两个单独的文件中。

# file1.rb
module Module
class A
end
end

我尝试了一些东西,这很有效:

# file2.rb
class Module::B < Module::A
end

但这看起来很奇怪。。不

这和上面的例子一样吗?我测试过了,但不是。。为什么?

# file2.rb
module Module
class B < A
end
end

谢谢!

我不知道你所说的是什么意思

我测试过,它不是[相同]

因为您没有解释您看到的意外结果/差异。

然而

一般来说,该代码的两个版本的行为应该完全相同。只有一个细微的区别。

在此版本中:

module Module
class B < A
end
end

A将首先尝试解析为Module::A,然后(如果找不到这样的类(它将尝试解析为::A(即顶级类(。

因此,只有当Module::A不存在/尚未加载,并且::A确实存在并已加载时,行为才会不同。

最新更新