Dyl*_*kow 38
gets
将使用Kernel#gets
,它首先尝试读取传入的文件的内容ARGV
.如果没有文件ARGV
,它将使用标准输入(此时它与...相同)STDIN.gets
.
注意:正如echristopherson指出的那样,Kernel#gets
实际上会回归$stdin
,而不是STDIN
.但是,除非您分配$stdin
给不同的输入流,否则它将STDIN
默认为相同.
http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-gets
小智 8
如果你的color.rb文件是
first, second, third = ARGV
puts "Your first fav color is: #{first}"
puts "Your second fav color is: #{second}"
puts "Your third fav color is: #{third}"
puts "what is your least fav color?"
least_fav_color = gets.chomp
puts "ok, i get it, you don't like #{least_fav_color} ?"
Run Code Online (Sandbox Code Playgroud)
你在终端跑
$ ruby color.rb blue yellow green
Run Code Online (Sandbox Code Playgroud)
它会抛出一个错误(没有这样的文件错误)
现在用'stdin.gets.chomp'替换'gets.chomp',如下所示
least_fav_color = $stdin.gets.chomp
Run Code Online (Sandbox Code Playgroud)
并在终端中运行以下命令
$ ruby color.rb blue yellow green
Run Code Online (Sandbox Code Playgroud)
然后你的程序运行!!
基本上,一旦你开始调用ARGV(如ARGV的设计),gets.chomp就不能再正常工作了.是时候引进大炮了:$ stdin.gets.chomp
归档时间: |
|
查看次数: |
23312 次 |
最近记录: |