在 Ruby 中:如果 x 是某个变量,那么使用 x.inspect 和使用 x.to_s 有区别吗?2种方法有什么区别?
问问题
3086 次
在 Ruby 中:如果 x 是某个变量,那么使用 x.inspect 和使用 x.to_s 有区别吗?2种方法有什么区别?
它们通常但并不总是相同。根据以下文档Object.inspect()
:
如果未覆盖,则使用 to_s 方法生成字符串。
所以默认情况下,它们返回相同的东西,因为inspect()
调用to_s()
. 然而,有时,重写做一件事是有意义to_s()
的,但是当从 irb 检查一个对象时,你想看到更多的细节。因此可以设置它们来做不同的事情。