Ruby的等价物与Python __main__相同

13
如果在一个 Ruby 文件中我这样定义一个函数:
def tell_the_truth()
    puts "truth"
end

是否有与Python的main函数相当的东西?

if __name__ == "__main__":
    tell_the_truth()

只需要在文件内部调用该函数吗?

tell_the_truth

2
Python 中使用 if 的原因是为了防止在将文件包含到另一个文件中时调用该函数,而您的 Ruby 示例(据我所知)并没有这样做。 - Michael Mrozek
谢谢Michael。我理解了Python中if的原因。为了比较,我尝试将tell_the_truth()放在函数定义下面,然后使用“require”从另一个Ruby文件导入该文件。这会打印出“truth”。因此,顶层语句似乎在导入文件时运行。 - Rodrigue
2个回答

27

我相信这个会起作用:

if __FILE__ == $0
    tell_the_truth()
end

2
if __FILE__ == $PROGRAM_NAME
    tell_the_truth()
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接