检查有限的递归

时间:2009-07-22 11:26:53

标签: ruby recursion inspect

我想对某个对象运行检查,但遗憾的是它要么链接到一些非常大的对象,要么具有循环引用。这导致了许多页面的输出。

是否有某种方法可以限制允许检查的递归级别?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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