如果`
我是Ruby的新手。 我正在寻找从包含我想要单独继续使用的工具的模块导入函数。 在Python中,我只需要这样做:
def a():
...
def b():
...
if __name__ == '__main__':
a()
b()
这使我可以运行程序或将其作为模块导入,以单独使用a()
和/或b()
。 Ruby中的等效范例是什么?
从我在野外见过的红宝石(授予,不是一吨),这不是标准的Ruby设计模式。 模块和脚本应该保持独立,所以我不会感到惊讶,如果没有一个很好的,干净的方法来做到这一点。
编辑:找到它。
if __FILE__ == $0
foo()
bar()
end
但这绝对不常见。
如果堆栈跟踪为空,我们可以开始执行到右侧和左侧。 我不知道这是常规还是非常规使用,因为我进入Ruby一周左右。
if caller.length == 0
# do stuff
end
概念验证:
file:test.rb
#!/usr/bin/ruby
if caller.length == 0
puts "Main script"
end
puts "Test"
文件:shmest.rb
#!/usr/bin/ruby -I .
require 'test.rb'
puts "Shmest"
用法:
$ ./shmest.rb
Test
Shmest
$ ./test.rb
Main script
Test
链接地址: http://www.djcxy.com/p/1607.html
上一篇: `if
下一篇: What is