我需要一个包含类的文件,但从未为所需类创建对象。但是当我运行'main.rb'文件时,所需的类就启动了。为什么?
主RB
require "./required_class.rb"
puts "This should be listed first"
必修课程.rb
class Hello_World
puts "Hello World"
end
最佳答案
在ruby类中,它们的行为不像函数,而是在执行时计算的。因为这个事实,你的课程实际上与简单的:
puts "Hello World"
你所看到的是预期的,如果你只是在IRB中运行:
> class Hello_World
> puts "Hello World"
> end
"Hello World"
=> nil
要在
require
包含它的文件时阻止它运行,您需要创建一个构造函数,如下所示:class Hello_World
def initialize
puts "Hello World"
end
end
现在,只有运行
Hello_World.new
如果希望能够在不实例化的情况下打印邮件,可以使用:
class Hello_World
@@hello = "Hello World"
end
然后您可以使用
puts Hello_World.hello
获取消息