最为通用的to_方法可能是to_s.每个ruby对象,除了BasicObject的实例以外,都可以响应to_s,关于to_s突出的一点,它通过确定的方法和一定的语义上下文,用规范的字符串表示对象。
>>obj=Object.new
1、 =>#<object:0x000001011c9ceo>
>>puts obj
2、 #<object :0x00001011c9ceo>
=>nil
3、 >>def obj.to_s
>> "i 'm an object"
>>end
4、 =>:to_js
5、 >>puts obj
i'm an object
=>nil
对象默认的字符串表示方法通常由类名和通过屏幕转存的内存地址构成 1,当调用puts打印输出对象,结果就如上面所示。而如果在对象上自定义一个to_s方法3,之后调用puts,则会转向这个新定义的方法 4(注意一下方法定义自身求值是一个符号类型:to_s)它代表着方法的名称5.