1

我想对某个对象运行检查,但不幸的是它要么链接到一些非常大的对象,要么具有循环引用。这会产生许多页面的输出。

有什么方法可以限制允许检查的递归级别吗?

4

2 回答 2

0

不,您可能想使用 prettyprint 模块进行“不同”的可视化(需要“pp”;pp 对象)或自己编写一些东西。编写通用转储程序非常困难,因为每个人都有不同的需求(转储二进制 blob?转储字符串到哪个长度?转储带循环的图?转储到哪个级别?...)。

于 2009-07-22T11:29:08.433 回答
0

我认为您将不得不为您的对象更改#inspect 的行为。如果您了解您的对象,那应该不会太难:

class Array
  def inspect
    puts "This is an array, size=#{size}"
  end
end

a = [1,2,3]

puts a.inspect #=> This is an array, size=3
于 2009-07-22T12:21:23.713 回答