包含类的 Ruby 模块

3

我正在开展一个项目,旨在使用Ruby构建编译器。即使是简单的编译器也会有很多代码。我计划创建类,例如SymbolTableLexerParser等。

所有这些类都有特定的操作,但我仍然希望将它们分组到一个命名空间下,是否可以在不同的文件中实现此目的?

例如:

File#1 SymbolTable.rb

module PL0Compiler
  class SymbolTable
     #....
  end
end

文件#2 Lever.rb

module PL0Compiler
  class Lexer
     #....
  end
end

@sawa,这就是我的问题所在?我正在寻找将相关类分组到一个命名空间中的正确方法,即使这些类在不同的文件中。 - Hunter McMillen
1个回答

3

是的,它是。但是尝试一下比询问需要更少的时间,所以这是一个奇怪的问题。也许你不知道如何访问它?这里有一个相当复杂的例子。


我之前在同一个 Ruby 源文件中嵌套了模块。我不确定移动它们是否会改变什么。我在 Stack Overflow 上搜索了,但没有看到任何例子。 - Hunter McMillen
Ruby不关心你的代码定义在哪个文件中。当它查找类/模块时,它是通过从当前所包含的类/模块开始搜索,然后从你指定的第一个模块内部开始搜索,以此类推,一直到嵌套结束。在顶层,你包含在Object中,所以类并不重要。(请注意,在Rails中位置确实很重要,因为它涉及代码重新加载,并过滤了你的回溯等等) - Joshua Cheek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接