Ruby STDIN.gets()和gets.chomp()Ruby 之间的区别是什么?他们不是都从用户那里检索原始输入吗?
问题:如果我想将他们的输入转换为整数,我该怎么做
myNumb = Integer(STDIN.gets())
Run Code Online (Sandbox Code Playgroud)
和
myNumb = Integer(gets.chomp())
Run Code Online (Sandbox Code Playgroud)
Ser*_*sev 15
gets实际上是Kernel#gets.它从作为参数传递的文件中读取,或者,如果不存在参数,则从标准输入读取.如果您只想从标准输入中读取,那么您应该更加明确它.
STDIN.gets
$stdin.gets
Run Code Online (Sandbox Code Playgroud)
至于转换,我通常使用String#to_i.它处理换行就好了.
执行您在此处描述的操作的最简单方法是Integer(gets),因为Integer()忽略尾随换行符,所以chomp没有必要。也不需要显式指定STDIN为接收者,因为如果脚本没有参数,Kernel#gets将执行此操作。