Ruby漂亮的印刷品并不是很漂亮

时间:2014-10-11 00:18:25

标签: ruby

当我使用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"
# }

我错过了什么?

1 个答案:

答案 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]