首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"p“和"pp”有什么区别?

"p“和"pp”有什么区别?
EN

Stack Overflow用户
提问于 2012-01-26 03:20:33
回答 3查看 19.7K关注 0票数 33

我确实做了一些搜索,但找不到简单问题的答案。

在Ruby语言中ppp有什么不同?我知道你需要require 'pp'。除此之外,还有什么不同?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-26 04:33:42

p用于检查作为调试辅助工具的变量。它可以打印#inspect方法的输出。例如,p foo将输出foo.inspect的内容。

有时,您需要调试复杂变量或嵌套变量。在这种情况下,p将输出一个很难理解的长行。相反,pp将尝试安排变量的内容,以便更容易理解,例如,缩进嵌套数组或为复杂对象的每个实例变量使用一行。pp通过调用#pretty_inspect方法( pp库将#pretty_inspect方法添加到许多类,如StringArrayStruct)来完成此任务。

记住:p =打印,pp =漂亮打印。

票数 38
EN

Stack Overflow用户

发布于 2012-01-26 03:26:34

它们略有不同。

代码语言:javascript
运行
复制
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的网站上窃取了测试数据。

票数 6
EN

Stack Overflow用户

发布于 2012-01-26 03:32:49

p打印一个对象的字符串表示,后面跟一个换行符。puts也是如此。不同之处在于,puts使用to_s将参数转换为字符串,而p使用inspect。这意味着在调试方面,p通常比puts更有用。

pp是“漂亮的打印”;它使用pretty_inspect来获取对象的字符串表示。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9008847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档