我需要一个包含类的文件,但从未为所需类创建对象。但是当我运行'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获取消息

09-10 07:49
查看更多