らぼらとり

koutya07の日記、備忘録

Ruby getsの挙動 簡単な確認

競技プログラミングとかで入力を受け取ったりするときgetsとかその他の挙動で迷うのでまとめてみます。
環境はruby2.0.0p645です。 


基本形

gets
abcd
=> "abcd\n"

・getsってやるとキーボード入力受付モードになる
・abcdって入力
・"abcd\n"が戻り値

"\n"は改行って意味ですね。一応。
じゃあもう少しテストしてみます



"abcd"を入れてみる

gets
"abcd"
=> "\"abcd\"\n"

ダブルクオートが \" に置き換わりました。
面白いすね。



'abcd'を入れてみる

gets
'abcd'
=> "'abcd'\n"

こっちは普通にシングルクオートのままだった。



abcd\nを入れてみる

gets
abcd\n
=> "abcd\\n\n"

\も\\に置き換わりました。



まとめると、getsは入力をすべてそのまま文字列化します。
ダブルクォートやスラッシュはエスケープされます。
あとgetsはファイルからも読み込めるらしいっす。

2.0.0のgestのリファレンス
instance method IO#gets (Ruby 2.0.0)