Ruby中的x.inspect和x.to_s之间的区别?

use*_*463 4 ruby

可能重复:
为什么这个Ruby对象有两个to_s和inspect方法做同样的事情?或者,似乎如此

在Ruby中:如果x是某个变量,使用x.inspect和使用x.to_s之间有区别吗?两种方法有什么区别?

Dar*_*tle 7

它们通常但并非总是相同.根据该文件为Object.inspect():

如果未重写,则使用to_s方法生成字符串.

所以默认情况下,他们返回相同的东西,因为inspect()调用to_s().但是,有时候,覆盖to_s()做一件事是有道理的,但是当从irb检查一个对象时,你想看到更多的细节.所以他们可以设置做不同的事情.