【问题标题】:Hash inspection in IRB?IRB中的哈希检查?
【发布时间】:2013-01-21 05:11:16
【问题描述】:

我有一个哈希:

hash = { test: 'Test' }

如果我在一个 irb 会话中输入hash,它会输出哈希的内容:

{
  :test => 'Test'
}

当我这样做时,正在对变量 hash 调用什么方法?

【问题讨论】:

    标签: ruby hash irb


    【解决方案1】:

    方法是Hash#inspect

    hash = { test: 'Test' }
    # => {:test=>"Test"}
    
    hash.inspect
    # => "{:test=>\"Test\"}"
    

    【讨论】:

      【解决方案2】:
      Object.inspect
      

      该方法通常用于打印对象结构。

      【讨论】:

      • 好的,那么我可以在 Hash 的子类中覆盖它吗?
      • @TheDelChop 是的。您可以覆盖 Ruby 中的几乎所有方法。
      • Object#inspect 是更常用的表示实例方法的方式。
      【解决方案3】:

      IRB 对您的表达式调用 #inspect 方法并打印其结果。

      【讨论】:

        【解决方案4】:

        当您的哈希包含大量数据时,在一行中读取其内容可能会很痛苦。

        我喜欢使用 y 在 yaml 中打印哈希。

        h = {:a => 1, :b => 2}
        y h
        # --- 
        #  :b: 2
        #  :a: 1
        # => nil
        

        【讨论】:

          【解决方案5】:

          IRB 将致电Hash#inspect

          hash.inspect
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-07-20
            • 1970-01-01
            • 2011-05-19
            • 2011-12-28
            • 2017-04-28
            • 1970-01-01
            • 1970-01-01
            • 2019-04-07
            相关资源
            最近更新 更多