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