0

我创建了一个名为 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 方法,但是没有太大的成功。关于如何做到这一点的任何建议?

4

1 回答 1

0

Test_array 是一个对象,当直接在对象上调用 puts 时,通常会返回实例。

您应该在 puts 方法中使用以下内容:

puts test_array.to_s
于 2012-06-27T17:54:47.210 回答