p vs放入Ruby

pputsRuby 之间有什么区别吗?



猛跑小猪
浏览 450回答 3
3回答

尚方宝剑之说

p foo打印foo.inspect跟着一个新行,即,它打印的值inspect代替to_s,这是更适合的调试(因为可以例如告诉之间的差1,"1"并且"2\b1",它可以不打印时不inspect)。

MMTTMM

同样重要的是要注意puts对已to_s定义的类的“反应” p不会。例如:class T&nbsp; &nbsp;def initialize(i)&nbsp; &nbsp; &nbsp; @i = i&nbsp; &nbsp;end&nbsp; &nbsp;def to_s&nbsp; &nbsp; &nbsp; @i.to_s&nbsp; &nbsp;endendt = T.new 42puts t&nbsp; &nbsp;=> 42p t&nbsp; &nbsp; &nbsp; => #<T:0xb7ecc8b0 @i=42>这直接来自.inspect调用,但是在实践中并不明显。

长风秋雁

除了上述答案外,控制台输出中还有细微的差别-即是否存在逗号/引号引起来-这可能是有用的:p "+++++">> "+++++"puts "=====">> =====如果您想使用它们的近亲print创建一个简单的进度栏,那么我发现这很有用:array = [lots of objects to be processed]array.size>> 20这给出了100%的进度条:puts "*" * array.size>> ********************这会在每次迭代中添加一个增量*:array.each do |obj|&nbsp; &nbsp;print "*"&nbsp; &nbsp;obj.some_long_executing_processend# This increments nicely to give the dev some indication of progress / time until completion>> ******
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby