据我所知,他们都可以从控制台读取。
我知道gets
也可以从文件中读取,但我对控制台输入感兴趣。
例如:
a = readline.chomp
puts a
a = gets.chomp
puts a
这给了我相同的输出。那么控制台输入的区别是什么?
答案 0 :(得分:4)
ruby-doc.org关于Kernel#readline
:
等同于
Kernel::gets
,readline
除了在文件末尾引发EOFError
。
gets
在输入结束时返回nil
。
您可以轻松看到差异:
echo -n "" | ruby -e "gets" # no error
echo -n "" | ruby -e "readline" # -e:1:in `readline': end of file reached (EOFError)