当我使用Ruby内置的Pretty Print(pp)时,结果会在一行中显示出来。例如,这就是我所看到的:
require 'pp'
pp [1, 2, 3]
# [1, 2, 3]
pp({ a: 'b', c: 'd', e: 'f' })
# {:a=>"b", :c=>"d", :e=>"f"}
通过在线阅读,我的理解是它实际上应该输出如下内容:
pp [1, 2, 3]
# [
# 1,
# 2,
# 3
# ]
pp({ a: 'b', c: 'd', e: 'f' })
# {
# :a => "b",
# :c => "d",
# :e => "f"
# }
我错过了什么?
答案 0 :(得分:1)
对于小阵列(或哈希),打印是在一行上进行的,因为在第一眼就可以理解它(可以说)。
require 'pp'
ary = [1, 2, 3]
aaaaarrraaay = (1..100).to_a
pp ary
#> [1, 2, 3]
pp aaaaarrraaay
#> [1,
#> 2,
#> 3,
#> 4,
#> 5,
#> ...
#> 100]
这取决于您的打印输出是否超过79个字符。 (见the code that does it)
但是,如果您使用PP.pp
而不是pp
def my_pp(anything)
PP.pp(anything, out = $>, width = 0)
end
my_pp [1, 2, 3]
#> [1,
#> 2,
#> 3]