我创建了一个名为SpecialArray的类,我想自定义irb显示的输出类型。当我创建一个实例变量test_array并使用SpecialArray生成一个数组时,我在irb中输入“test_array”,我得到了这个:
1.9.3p194 :051 > test_array
=> [1, 2, 0, 6, 11]
当我使用“puts”时,irb只返回对象,如下所示:
1.9.3p194 :054 > puts test_array
#<SpecialArray:0x007ff05d0b4960>
但是我想让irb的行为更像第一个例子,我只输入“test_array :(即我想在一行中返回数组)。我尝试用我的方法覆盖默认的puts方法拥有,但没有太大成功。有关如何做到这一点的任何建议吗?
答案 0 :(得分:0)
Test_array是一个对象,当直接在对象上调用puts时,通常会返回实例。
您应该在puts方法中使用以下内容:
puts test_array.to_s