【问题标题】:Inspect with limited recursion有限递归检查
【发布时间】:2009-07-22 11:26:52
【问题描述】:

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

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

【问题讨论】:

    标签: ruby recursion inspect


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我认为您将不得不为您的对象更改#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
      

      【讨论】:

      • 它是一个外部库,所以我完全不知道发生了什么。
      猜你喜欢
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 2021-12-27
      相关资源
      最近更新 更多