Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含类的Ruby模块_Ruby - Fatal编程技术网

包含类的Ruby模块

包含类的Ruby模块,ruby,Ruby,我正在做一个用Ruby创建编译器的项目,即使是简单的编译器也会有很多代码。我计划使用像SymbolTable,Lexer,Parser等类 所有这些类都执行特定的操作,但我仍然希望将它们分组在一个名称空间下,是否可以在单独的文件中执行此操作 例: 文件#1 SymbolTable.rb module PL0Compiler class SymbolTable #.... end end 文件#2 Lever.rb module PL0Compiler class Lexe

我正在做一个用Ruby创建编译器的项目,即使是简单的编译器也会有很多代码。我计划使用像
SymbolTable
Lexer
Parser
等类

所有这些类都执行特定的操作,但我仍然希望将它们分组在一个名称空间下,是否可以在单独的文件中执行此操作

例:

文件#1 SymbolTable.rb

module PL0Compiler
  class SymbolTable
     #....
  end
end
文件#2 Lever.rb

module PL0Compiler
  class Lexer
     #....
  end
end

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

@sawa,这就是我要问的?我正在寻找将相关类分组到一个名称空间的正确方法,即使这些类在单独的文件中,我以前在同一个源ruby文件中嵌套过模块。我不确定移动它们是否会改变什么。我搜索了这么多,但没有看到任何示例。Ruby不关心您的代码是在哪个文件中定义的。当它查找类/模块时,它通过从当前包含在其中的任何类/模块中进行搜索,然后从指定的第一个模块中进行搜索,依此类推。在顶层,您被包含在对象中,因此类并不重要。(注意,位置在Rails中确实很重要,因为它处理代码重新加载,并过滤您的回溯等等)