我确实做了一些搜索,但找不到简单问题的答案。
在Ruby语言中p
和pp
有什么不同?我知道你需要require 'pp'
。除此之外,还有什么不同?
发布于 2012-01-26 04:33:42
p
用于检查作为调试辅助工具的变量。它可以打印#inspect
方法的输出。例如,p foo
将输出foo.inspect
的内容。
有时,您需要调试复杂变量或嵌套变量。在这种情况下,p
将输出一个很难理解的长行。相反,pp
将尝试安排变量的内容,以便更容易理解,例如,缩进嵌套数组或为复杂对象的每个实例变量使用一行。pp
通过调用#pretty_inspect
方法( pp
库将#pretty_inspect
方法添加到许多类,如String
、Array
或Struct
)来完成此任务。
记住:p
=打印,pp
=漂亮打印。
发布于 2012-01-26 03:26:34
它们略有不同。
data = [false, 42, %w{fourty two}, {:now => Time.now, :class => Time.now.class, :distance => 42e42}]
p data
[false, 42, ["fourty", "two"], {:now=>2012-01-25 19:23:06 +0000, :class=>Time, :distance=>4.2e+43}]
pp data
[false,
42,
["fourty", "two"],
{:now=>2012-01-25 19:23:06 +0000, :class=>Time, :distance=>4.2e+43}]
请注意:我从一个显示difference between pp and their gem的网站上窃取了测试数据。
发布于 2012-01-26 03:32:49
p
打印一个对象的字符串表示,后面跟一个换行符。puts
也是如此。不同之处在于,puts
使用to_s
将参数转换为字符串,而p
使用inspect
。这意味着在调试方面,p
通常比puts
更有用。
pp
是“漂亮的打印”;它使用pretty_inspect
来获取对象的字符串表示。
https://stackoverflow.com/questions/9008847
复制相似问题