我看到许多程序被以下 if
语句包围:
if __FILE__ == $PROGRAM_NAME
# rest of the program
end
我读到它是“确保当前文件对应于需要[被]执行的程序”。
我什么时候应该在我的程序中使用这个语句?我应该在什么情况下使用它?什么时候不需要?
最佳答案
when is it not necessary?
几乎总是。
when should I use this statement in my programs?
当您有一个主要由其他文件使用的文件,但有时您想直接运行该文件。在这种情况下,这部分代码通常会进行一些测试或示例使用。
# animal.rb
class Animal
def voice
raise NotImplementedError
end
end
class Dog < Animal
def voice
'Woof!'
end
end
if __FILE__ == $PROGRAM_NAME
puts "testing voice"
puts Dog.new.voice == 'Woof!'
end
如果您运行 ruby animal.rb
,您将看到调试/测试输出。如果您只是需要来自另一个文件的“动物”
,则不会。
关于ruby - 何时使用 'if __FILE__ == $PROGRAM_NAME',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48690284/