Ruby等价于Python\uuuu main__

Ruby等价于Python\uuuu main__,python,ruby,main,Python,Ruby,Main,如果在ruby文件中,我定义了如下函数: def tell_the_truth() puts "truth" end 有一个与python的main等价的吗 if __name__ == "__main__": tell_the_truth() 是否只是调用文件中的函数 tell_the_truth 我相信这会奏效: if __FILE__ == $0 tell_the_truth() end Python中使用if的原因是,如果文件包含在另一个文件中,就不会调用

如果在ruby文件中,我定义了如下函数:

def tell_the_truth()
    puts "truth"
end
有一个与python的main等价的吗

if __name__ == "__main__":
    tell_the_truth()
是否只是调用文件中的函数

tell_the_truth

我相信这会奏效:

if __FILE__ == $0
    tell_the_truth()
end

Python中使用
if
的原因是,如果文件包含在另一个文件中,就不会调用该函数,而您的Ruby示例(据我所知)没有这样做。我理解python中if背后的原因。为了进行比较,我尝试将tell_the_truth()放在函数定义下面,然后使用“require”从另一个ruby文件导入该文件。那印的是“真相”。因此,顶级语句似乎是在导入文件时运行的。
if __FILE__ == $PROGRAM_NAME
    tell_the_truth()
end