Ruby中STDIN.gets()
和gets.chomp()
之间有什么区别?他们不是都从用户那里检索原始输入吗?
方面的问题:如果我想将他们的输入转换为整数,我可以吗
myNumb = Integer(STDIN.gets())
和
myNumb = Integer(gets.chomp())
答案 0 :(得分:15)
gets
实际上是Kernel#gets。它从作为参数传递的文件中读取,或者,如果不存在参数,则从标准输入读取。如果您只想从标准输入读取,那么您应该更明确地了解它。
STDIN.gets
$stdin.gets
至于转换,我通常使用String#to_i。它处理换行就好了。
答案 1 :(得分:3)
最简单的方法是执行您在此处描述的内容Integer(gets)
,因为Integer()
会忽略尾随换行符,因此chomp
是不必要的。也没有必要明确指定STDIN
作为接收者,因为如果脚本没有参数,Kernel#gets将会做什么。
答案 2 :(得分:2)
,因为 如果ARGV中有东西,默认的获取方法会尝试将第一个视为文件并读取 从那以后。要在这种情况下读取用户的输入(即标准输入),您必须使用 它明确地STDIN.gets。