概要
Crystal の Top Level Namespace のマクロ、 pp
について
pp
とは
PrettyPrint。人間にとって見やすい形式で標準出力を行います。
Crystalの例
プログラム
ary = [1, 2, 3]
hash = { key1: :value1, key2: :value2 }
pp [
1,
"hoge",
ary,
ary + ary,
hash,
[ary, hash]
]
出力
[1, "hoge", ary, ary + ary, hash, [ary, hash]] = [1, "hoge", [1, 2, 3], [1, 2, 3, 1, 2, 3], {:key1 => :value1, :key2 => :value2}, [[1, 2, 3], {:key1 => :value1, :key2 => :value2}]]
Rubyの例
プログラム
require 'pp'
ary = [1, 2, 3]
hash = { key1: :value1, key2: :value2 }
pp [
1,
"hoge",
ary,
ary + ary,
hash,
[ary, hash]
]
出力
[1,
"hoge",
[1, 2, 3],
[1, 2, 3, 1, 2, 3],
{:key1=>:value1, :key2=>:value2},
[[1, 2, 3], {:key1=>:value1, :key2=>:value2}]]
まとめ
Crystalのpp
は、出力前の式も標準出力してくれます。
しかし、出力が長くなった場合の改行はしてくれないようです。