首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STDIN.gets()和gets.chomp()有什么区别?

STDIN.gets()和gets.chomp()有什么区别?
EN

Stack Overflow用户
提问于 2012-08-21 00:29:29
回答 3查看 15K关注 0票数 10

在Ruby语言中STDIN.gets()gets.chomp()有什么不同?它们不都是从用户那里检索原始输入吗?

附带问题:如果我想将他们的输入转换为整数,我应该这样做吗?

代码语言:javascript
复制
myNumb = Integer(STDIN.gets())

代码语言:javascript
复制
myNumb = Integer(gets.chomp()) 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-21 00:33:33

要完成这里描述的操作,最简单的方法是Integer(gets),因为Integer()忽略了尾随的换行符,所以chomp是不必要的。也不需要显式地指定STDIN作为接收方,因为如果脚本没有参数,Kernel#gets就会这样做。

票数 4
EN

Stack Overflow用户

发布于 2012-08-21 00:38:23

gets实际上是Kernel#gets。它从作为参数传递的文件中读取,如果没有参数,则从标准输入中读取。如果您只想从标准输入读取,那么您应该更明确地说明这一点。

代码语言:javascript
复制
STDIN.gets
$stdin.gets

至于转换,我通常使用String#to_i。它可以很好地处理换行符。

票数 17
EN

Stack Overflow用户

发布于 2014-02-20 21:22:42

因为如果ARGV中有内容,默认的gets方法会尝试将第一个内容视为文件并从中读取。要在这种情况下读取用户的输入(即标准输入),您必须显式地使用它STDIN.gets。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12041492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档