在Ruby中,是否有一种方法可以通过包访问类,或者所有的类都可以写在同一个代码文件中



我使用Netbeans在Ruby中编程,我似乎无法访问我从Ruby中的主类编写的其他类,直到我将该代码放在主类本身中。有没有办法解决这个问题,使它像Java类一样工作?

如果我理解正确,您正在寻找import,您在单独的文件中写入当前文件的类。如果这就是你想要做的,看看require_relative

# cow.rb
class Cow
  def moo
    'Moooooooo'
  end
end
# main.rb
require_relative 'cow.rb'
milford = Cow.new
puts milford.moo #=> 'Moooooooo'

事情要注意的是,require_relative搜索文件在当前位置的文件,你调用它。例如:

# If cow.rb is in folder 'animals'
require_relative 'animals/cow.rb' #=> Fine
require_relative 'cow.rb' #=> LoadError

我建议找一些关于Ruby的好的教程或者找一本初学者的书。其中一些甚至可以在网上找到,比如Programming Ruby The Pragmatic Programmer’s Guide。这个问题涵盖了一些非常基本的Ruby概念。

另外,我不建议使用Netbeans,因为他们已经不再支持Ruby了。如果您想继续使用旧版本的Netbeans,但您很快就会发现它缺乏对新Ruby版本的支持,那么这是可以的。

首先,Ruby没有"包"的概念。有文件和模块。要从同一目录下的文件中导入所有全局变量、常量、模块和类,输入:

require_relative "myfile.rb"

您现在可以在代码中使用myfile.rb中定义的任何类,模块,常量和全局变量。

相关内容

  • 没有找到相关文章