10

nil.to_sを返すのはなぜですが""、(明らかにメソッドを使用している場合)をnil.inspect返します"nil".inspect.to_s

4

2 に答える 2

24

Object クラスの「inspect」メソッドは、人間が読めるバージョンのオブジェクトを返すことになっています。

の人間が読めるバージョンnilは "nil" であり、"" (文字列の人間が読めるバージョン"") ではありません。
そのためnil.inspect、「nil」を返す必要がありますが、通常は期待どおりに返すnil.to_sために「」を返します(たとえば、他の言語で)。"a string" + nil"a string"

于 2012-09-12T19:56:05.887 に答える
6

のドキュメントを参照してくださいNilClass.inspect。との"nil"同等性を保証するものではありませんto_s

于 2012-09-12T19:53:31.737 に答える