如何不在ruby中编写完整的模块路径? 让我考虑在一个很长的模块路径中有一个类: sux = Really::Long::Module::Path::Sucks.new

如何不在ruby中编写完整的模块路径? 让我考虑在一个很长的模块路径中有一个类: sux = Really::Long::Module::Path::Sucks.new,ruby,Ruby,我是否可以以某种方式“导入”这个模块,这样我就可以直接使用这个类,而不用担心每次使用它时都要编写这个路径 编辑:我知道在同一个模块里会让事情变得更容易。但是在这种情况下,我不能在同一个模块中。模块是ruby中的一个对象,因此您可以只引用较短的模块 Sux = Really::Long::Module::Path::Sucks Sux.new 在你们班: include Really::Long::Module::Path 这基本上将该模块的所有常量/方法混合到include类中,因此您可以直

我是否可以以某种方式“导入”这个模块,这样我就可以直接使用这个类,而不用担心每次使用它时都要编写这个路径


编辑:我知道在同一个模块里会让事情变得更容易。但是在这种情况下,我不能在同一个模块中。

模块是ruby中的一个对象,因此您可以只引用较短的模块

Sux = Really::Long::Module::Path::Sucks
Sux.new
在你们班:

include Really::Long::Module::Path
这基本上将该模块的所有常量/方法混合到include类中,因此您可以直接使用
Sucks
类:

sux = Sucks.new

哎呀,你的问题读得不够仔细。一定要走
include
路线。我可能不会删除这个问题,因为在某些情况下这是一种有效的方法(除非有人反对)。这听起来实际上是一种只使用其他模块中的类型的更合适的方法。包括一个模块可能会更贵一些,所以我改变了主意,这是我现在选择的答案。我只想改变第二行,因为Sux现在是Sucks类的别名,而不是它的实例。安德鲁,你真的在抱怨用“烂”这个词来表示“不好”吗?你对亵渎的容忍度异常低,如果是这样的话!
module A; module B; module C; module D
  class E; end
end; end; end; end

class Sanity
  include A::B::C::D
  puts E.new.object_id
end