如何修改Ruby中puts打印对象的输出内容?
在Ruby中自定义puts打印对象的内容
当你使用puts输出一个对象时,Ruby会自动调用该对象的to_s方法。默认情况下,to_s返回的是对象的类名加上内存地址的字符串(比如#<MyClass:0x0000011fce07b4a0>)。要实现自定义打印内容,只需要在你的类中重写to_s方法即可。
修改后的代码如下:
class MyClass attr_accessor :var def initialize(var) @var = var end # 重写to_s方法,返回你想要打印的内容 def to_s @var end end obj = MyClass.new("content") puts obj # 现在会打印"content"
如果需要更复杂的输出格式,也可以在to_s里拼接字符串,比如:
def to_s "MyClass 实例,var 属性值为:#{@var}" end
这样调用puts obj时,就会输出MyClass 实例,var 属性值为:content。
内容的提问来源于stack exchange,提问作者PKP
相关产品推荐
相关产品推荐

