4

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

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

4

1 回答 1

7

它们通常但并不总是相同。根据以下文档Object.inspect()

如果未覆盖,则使用 to_s 方法生成字符串。

所以默认情况下,它们返回相同的东西,因为inspect()调用to_s(). 然而,有时,重写做一件事是有意义to_s()的,但是当从 irb 检查一个对象时,你想看到更多的细节。因此可以设置它们来做不同的事情。

于 2012-06-13T00:56:24.010 回答