我正在使用Netbeans在Ruby中编程,我似乎无法访问我在Ruby的主类中编写的其他类,直到我将该代码放在主类本身中。有没有办法解决这个问题,以便它像Java类一样工作?
答案 0 :(得分:1)
如果我理解正确,那么您正在寻找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版本的支持。
答案 1 :(得分:0)
首先,Ruby没有“包”的概念。有文件和模块。要从同一目录中的文件导入所有全局变量,常量,模块和类,请键入:
require_relative "myfile.rb"
您现在可以在代码中使用myfile.rb
中定义的任何类,模块,常量和全局变量。