关于Ruby-Lang的简短教程说明如下:
if __FILE__ == $0
__FILE__
是包含当前文件名称的魔术变量。 $0
是用于启动程序的文件的名称。此检查显示“如果这是正在使用的主文件......”
这允许将文件用作库,而不是在该上下文中执行代码,但如果该文件被用作可执行文件,则执行该代码。
但上面的粗线并不清楚,因为我是Ruby的新手。
答案 0 :(得分:2)
假设您的文件是foo.rb,并定义了一个Foo类。该文件可以以两种方式之一使用。
您已经熟悉的第一个是将其包含在另一个文件或IRB中。它会像:
# in otherfile.rb
require 'foo'
foo = Foo.new
if __FILE__ == $0
行用于第二个用例,您可以在其中使文件可执行并直接从shell调用它。它会像
# in the shell
./foo.rb
# alternatively: ruby foo.rb
答案 1 :(得分:1)
如果您有文件
# foo.rb
if __FILE__ == $0
puts 'foo'
else
puts 'bar'
end
运行ruby foo.rb
而不是返回'foo'
。
但是如果您有相同的文件和其他文件:
# bar.rb
require 'foo'
您将运行ruby bar.rb
而不是'bar'
。
答案 2 :(得分:0)
if __FILE__ == $0
#Do something
else
#Do something else
end
这意味着,只有当您通过require或include加载文件时,才会执行此块中的代码。