当参数传递给我的ruby脚本时,为什么会发生错误?

前端之家收集整理的这篇文章主要介绍了当参数传递给我的ruby脚本时,为什么会发生错误?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用来暂停我的脚本的输出,直到用户点击Enter键.如果我没有传递任何参数到我的脚本,那么它的工作正常.但是,如果我传递任何参数到我的脚本,然后死亡与以下错误
ruby main.rb -i
main.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
    from main.rb:74:in `gets'
    ...

错误消息显示了我传递给脚本的参数.为什么会看到ARGV?

我使用OptionParser解析我的命令行参数.如果我使用解析!而不是解析(所以它从参数列表中删除它解析的东西),那么应用程序工作正常.

所以看起来像是因为某些原因从ARGV读书.为什么?这是预期的吗有没有办法让它不这样做(gets()没有帮助).

解决方法

Ruby将自动将解析的参数视为文件名,然后打开并读取使输入可用于ARGF($<)的文件.默认情况下,从ARGF读取.绕过那个:
$stdin.gets

有人建议您可以使用STDIN而不是$stdin,但通常为better to use $stdin.

另外,从ARGV捕获您想要的输入后,可以使用:

ARGV.clear

然后,如果没有阅读可能无法阅读的文件,您将可以自由获取.

原文链接:https://www.f2er.com/ruby/272640.html

猜你在找的Ruby相关文章