Ruby中是否有类似于Python类上可以定义的__str__()
方法的等效方法?
值得一提的是,inspect模块更像是__repr__()
而不是__str__()
从库参考文档中可以看到...
repr(self)
由内置函数repr()和字符串转换(反引号)调用以计算对象的“官方”字符串表示形式。如果可能的话,这应该看起来像一个有效的Python表达式,可以使用它来重新创建具有相同值的对象(在适当的环境中)。如果这不可能,则应返回类似“<...一些有用的描述...>”的字符串。返回值必须是一个字符串对象。如果一个类定义了__repr__()但没有定义__str__(),则在需要该类实例的“非正式”字符串表示时也会使用__repr__()。
irb(main):001:0> puts "array is: #{[1,2,3].inspect}"
array is: [1, 2, 3]
=> nil
irb(main):002:0> puts "array is: #{[1,2,3]}"
array is: 123
=> nil
irb(main):003:0>