当前位置:  开发笔记 > 编程语言 > 正文

我应该在ruby脚本中定义一个main方法吗?

如何解决《我应该在ruby脚本中定义一个main方法吗?》经验,为你挑选了3个好方法。

在python中,模块不必具有 main函数,但通常的做法是使用以下习语:

def my_main_function():
    ... # some code

if __name__=="__main__":  # program's entry point
    my_main_function()

我知道红宝石不具备有一个main方法要么,但有某种我应遵循最佳实践?我应该说出我的方法main或其他什么?

关于主要方法的维基百科页面并没有真正帮助我.


作为旁注,我在python中也看到了以下习语:

def my_main_function(args=[]):
    ... # some code

if __name__=="__main__":  # program's entry point
    import sys
    sys.exit(my_main_function(sys.argv))

Allyn.. 76

我经常使用

if __FILE__ == $0
  x = SweetClass.new(ARGV)
  x.run # or go, or whatever
end

是的,你可以.这取决于你在做什么.



1> Allyn..:

我经常使用

if __FILE__ == $0
  x = SweetClass.new(ARGV)
  x.run # or go, or whatever
end

是的,你可以.这取决于你在做什么.


这是一个很好的建议 - 这样,您的文件既可以作为独立的可执行文件也可以作为库使用

2> 小智..:

我总是发现$PROGRAM_NAME比使用更具可读性$0.有一半时间,我看到像这样的"Perl-like"全局变量,我必须去查看它们.

if __FILE__ == $PROGRAM_NAME
  # Put "main" code here
end



3> Rein Henrich..:

您应该将库代码放在bin /中需要库代码的lib /和可执行文件中.这具有与RubyGems的封装方法兼容的额外优势.

一个常见的模式是lib/application.rb(或者最好是一个更适合您域名的名称)和bin/application,它包含:

require 'application'
Application.run(ARGV)

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有