如果没有使用optparse给出任何信息,如何默认信息

13aal

我有一个创建电子邮件的程序,我想要做的是当-t给定标志并且不给标志提供参数时,默认为某样东西,而是输出通常的代码:<main>': missing argument: -t (OptionParser::MissingArgument)

所以我的问题是,如果我有这个标志:

require 'optparse'

OPTIONS = {}

OptionParser.new do |opts|
  opts.on('-t INPUT', '--type INPUT', 'Specify who to say hello to'){ |o| OPTIONS[:type] = o }
end.parse!

def say_hello
  puts "Hello #{OPTIONS[:type]}"
end  

case
  when OPTIONS[:type]
    say_hello
  else
    puts "Hello World"
end   

并且我在没有必需参数的情况下运行此标志,INPUT如何使程序输出Hello World而不是:<main>': missing argument: -t (OptionParser::MissingArgument)

例子:

C:\Users\bin\ruby\test_folder>ruby opt.rb -t hello
Hello hello

C:\Users\bin\ruby\test_folder>ruby opt.rb -t
opt.rb:7:in `<main>': missing argument: -t (OptionParser::MissingArgument)

C:\Users\bin\ruby\test_folder>
13aal

我发现可以通过在方括号周围添加方括号INPUT来提供输入示例的选项:

require 'optparse'

OPTIONS = {}

OptionParser.new do |opts|
  opts.on('-t [INPUT]', '--type [INPUT]', 'Specify the type of email to be generated'){ |o| OPTIONS[:type] = o }
end.parse!

def say_hello
  puts "Hello #{OPTIONS[:type]}"
end  

case 
  when OPTIONS[:type]
    say_hello
  else
    puts "Hello World"
end

输出:

C:\Users\bin\ruby\test_folder>ruby opt.rb -t
Hello World

C:\Users\bin\ruby\test_folder>ruby opt.rb -t hello
Hello hello

因此,如果我这样做:

require 'optparse'

OPTIONS = {}

OptionParser.new do |opts|
  opts.on('-t [INPUT]', '--type [INPUT]', 'Specify the type of email to be generated'){ |o| OPTIONS[:type] = o }
end.parse!

def say_hello
  puts "Hello #{OPTIONS[:type]}"
  puts
  puts OPTIONS[:type]
end  

case 
  when OPTIONS[:type]
    say_hello
  else
    puts "Hello World"
    puts OPTIONS[:type] unless nil; puts "No value given"
end

我可以输出提供的信息,或者当没有信息提供时,我可以输出No value given

C:\Users\bin\ruby\test_folder>ruby opt.rb -t hello
Hello hello

hello

C:\Users\bin\ruby\test_folder>ruby opt.rb -t
Hello World

No value given

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Hibernate没有给出任何错误

来自分类Dev

为什么要使用printf(“ test”); 没有给出任何错误?

来自分类Dev

为什么要使用printf(“ test”); 没有给出任何错误?

来自分类Dev

角模拟$ httpBackend没有给出任何刷新请求

来自分类Dev

Xamarin for Android中的RestSharp没有给出任何响应

来自分类Dev

如何修复加密没有给出正确的单词信息

来自分类Dev

显示所有使用帐户的信息

来自分类Dev

如果命令在 10 秒内没有输出任何内容,如何退出命令?

来自分类Dev

如果没有提供参数,默认情况下如何制作“ optparse”打印菜单?

来自分类Dev

如果没有共享GIS信息,该如何应对?

来自分类Dev

如果 api 中没有更多信息,如何删除按钮

来自分类Dev

没有使用 Office 365 登录 (ADAL.js) 保存用户信息

来自分类Dev

无论如何,是否有使用haskelldb或任何其他haskell库从现有架构中反向工程字段的信息?

来自分类Dev

如果联接表中没有任何内容,则从左表事件获取所有信息

来自分类Dev

git-commit没有给出任何输出,什么也没有提交

来自分类Dev

git-commit没有给出任何输出,什么也没有提交

来自分类Dev

RACObserve没有给出任何值。(带有Swift的可可粉)

来自分类Dev

jQuery $ .each没有给出表中的所有信息

来自分类Dev

log4net没有给出任何响应或记录

来自分类Dev

NullPointerException:没有给出任何应用程序实例,getinstance()甚至this(!?)似乎返回null

来自分类Dev

为什么Linux内核的pr_debug没有给出任何输出?

来自分类Dev

fopen没有给出任何错误,但是文件保持为空

来自分类Dev

为什么TPL Dataflow block.LinkTo没有给出任何输出?

来自分类Dev

Ajax无法正常工作并且控制台没有给出任何错误-MVC

来自分类Dev

git命令显示user.name没有给出任何结果

来自分类Dev

我可以知道为什么这段代码没有给出任何输出吗?

来自分类Dev

python scrapy FormRequest.FormResponse没有给出任何输出

来自分类Dev

C ++为什么该程序没有给出任何输出?

来自分类Dev

Ajax无法正常工作并且控制台没有给出任何错误-MVC

Related 相关文章

  1. 1

    Hibernate没有给出任何错误

  2. 2

    为什么要使用printf(“ test”); 没有给出任何错误?

  3. 3

    为什么要使用printf(“ test”); 没有给出任何错误?

  4. 4

    角模拟$ httpBackend没有给出任何刷新请求

  5. 5

    Xamarin for Android中的RestSharp没有给出任何响应

  6. 6

    如何修复加密没有给出正确的单词信息

  7. 7

    显示所有使用帐户的信息

  8. 8

    如果命令在 10 秒内没有输出任何内容,如何退出命令?

  9. 9

    如果没有提供参数,默认情况下如何制作“ optparse”打印菜单?

  10. 10

    如果没有共享GIS信息,该如何应对?

  11. 11

    如果 api 中没有更多信息,如何删除按钮

  12. 12

    没有使用 Office 365 登录 (ADAL.js) 保存用户信息

  13. 13

    无论如何,是否有使用haskelldb或任何其他haskell库从现有架构中反向工程字段的信息?

  14. 14

    如果联接表中没有任何内容,则从左表事件获取所有信息

  15. 15

    git-commit没有给出任何输出,什么也没有提交

  16. 16

    git-commit没有给出任何输出,什么也没有提交

  17. 17

    RACObserve没有给出任何值。(带有Swift的可可粉)

  18. 18

    jQuery $ .each没有给出表中的所有信息

  19. 19

    log4net没有给出任何响应或记录

  20. 20

    NullPointerException:没有给出任何应用程序实例,getinstance()甚至this(!?)似乎返回null

  21. 21

    为什么Linux内核的pr_debug没有给出任何输出?

  22. 22

    fopen没有给出任何错误,但是文件保持为空

  23. 23

    为什么TPL Dataflow block.LinkTo没有给出任何输出?

  24. 24

    Ajax无法正常工作并且控制台没有给出任何错误-MVC

  25. 25

    git命令显示user.name没有给出任何结果

  26. 26

    我可以知道为什么这段代码没有给出任何输出吗?

  27. 27

    python scrapy FormRequest.FormResponse没有给出任何输出

  28. 28

    C ++为什么该程序没有给出任何输出?

  29. 29

    Ajax无法正常工作并且控制台没有给出任何错误-MVC

热门标签

归档