Ruby 什么';gets和readline之间的区别是什么?

Ruby 什么';gets和readline之间的区别是什么?,ruby,Ruby,据我所知,他们都可以从控制台阅读。 我知道get也可以读取文件,但我对控制台输入感兴趣 例如: 这给了我相同的输出。那么控制台输入的区别是什么呢?来自about内核#readline: 相当于Kernel::get,除了文件末尾的readline引发eoferor 获取在输入结束时返回nil 您可以很容易地看到差异: echo -n "" | ruby -e "gets" # no error echo -n "" | ruby -e "readline" # -e:1:in

据我所知,他们都可以从控制台阅读。 我知道
get
也可以读取文件,但我对控制台输入感兴趣
例如:

这给了我相同的输出。那么控制台输入的区别是什么呢?

来自about
内核#readline

相当于
Kernel::get
,除了文件末尾的
readline
引发
eoferor

获取
在输入结束时返回
nil

您可以很容易地看到差异:

echo -n "" | ruby -e "gets"        # no error
echo -n "" | ruby -e "readline"    # -e:1:in `readline': end of file reached (EOFError)
echo -n "" | ruby -e "gets"        # no error
echo -n "" | ruby -e "readline"    # -e:1:in `readline': end of file reached (EOFError)