Rubyのソースコードの入出力に関するところを読んでみるとわかるのですが、必ずnilを返すようになっていました。入出力に関してはC言語で書かれていて、QnilというRubyのnilを表す定数が返されています。
僕は詳しくなぜこの仕様なのかわからないのですが、推測してみます。
Rubyでは全てがオブジェクトなので、全てメソッドが渡せます。
また、オブジェクトはほとんどがmutableです。
ある変数(a)がIntegerで、何らかの処理中にputsがその変数(a)に代入された時を考えます。
その後で変数(a)にIntegerに関するメソッドが渡されたにも関わらず、そのレシーバ(a)がStringだったときに、予期せぬ結果が返るかもしれません。もし、nilが返っていれば、nilに定義されているメソッドは限られているので、NoMethodErrorが起きます。そうすることでコードの誤りに気づくことができると思います。
質問の答えになっているかわかりませんが、力になれると幸いです!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/22 06:19