【发布时间】:2013-01-21 05:11:16
【问题描述】:
我有一个哈希:
hash = { test: 'Test' }
如果我在一个 irb 会话中输入hash,它会输出哈希的内容:
{
:test => 'Test'
}
当我这样做时,正在对变量 hash 调用什么方法?
【问题讨论】:
我有一个哈希:
hash = { test: 'Test' }
如果我在一个 irb 会话中输入hash,它会输出哈希的内容:
{
:test => 'Test'
}
当我这样做时,正在对变量 hash 调用什么方法?
【问题讨论】:
方法是Hash#inspect。
hash = { test: 'Test' }
# => {:test=>"Test"}
hash.inspect
# => "{:test=>\"Test\"}"
【讨论】:
Object.inspect
该方法通常用于打印对象结构。
【讨论】:
Object#inspect 是更常用的表示实例方法的方式。
IRB 对您的表达式调用 #inspect 方法并打印其结果。
【讨论】:
当您的哈希包含大量数据时,在一行中读取其内容可能会很痛苦。
我喜欢使用 y 在 yaml 中打印哈希。
h = {:a => 1, :b => 2}
y h
# ---
# :b: 2
# :a: 1
# => nil
【讨论】:
IRB 将致电Hash#inspect。
hash.inspect
【讨论】: