ruby(p vs puts vs print)

作者: YongpingZhao | 来源:发表于2016-08-16 13:15 被阅读0次

ruby在命令行中有三种方法来打印信息:

Kernel#p,Kernel#puts,Kernel#print
>class p
>  def inspect(); "P#inspect";end
>  def to_s(); "P#to_s";end
>end
>q=P.new

print###

print调用对象的to_s方法并把它输出到标准输出上

>print q
P#to_s => nil

print不会添加新的一行

>print 1,2,3
123 => nil

>print 1,"\n",2,"\n",3,"\n"
1
2
3
=> nil

puts###

Kernel#puts可能是ruby开发者最熟悉的打印方法。

puts跟print类似,调用to_s函数,并且添加新的一行输出

> puts q
P#to_s 
=>nil
>puts 1,2,3
1
2
3
=>nil

p###

p跟puts类似,添加新的一行,但是它调用的是inspect,而不是to_s

>p q
P#inspect
=>P#inspect

> p 1,2,3
1
2
3
=> [1,2,3]

p函数在调试代码的时候更有效,由于puts调用to_s。因此你并不能准确的知道对象的类型,
如下:

>puts 1
1
=>nil
>puts '1'
1
=> nil

但是p可以更好地返回我们想要查看的内容

> p 1
1
=> 1
> p '1'
"1"
=> "1"

相关文章

  • ruby(p vs puts vs print)

    ruby在命令行中有三种方法来打印信息: print### print调用对象的to_s方法并把它输出到标准输出上...

  • Ruby print - puts - p - pp 方法

    p方法 "100", 100 如果使用上面两种方式, 我们无法判断输出的结果到底是哪个对象.这种情况下, p 方法...

  • 基础 Ruby 中 Include, Extend, Load,

    原文链接: Ruby Require VS Load VS Include VS Extend Include ...

  • Python/Ruby/Go/Node 之四国大战

    Python Flask vs Ruby Sinatra vs Go Martini vs Node Expres...

  • ruby基础概念

    1.Require 、 Load 、 Include 、 Extend Ruby Require VS Load ...

  • articles

    AWS vs Paperspace vs FloydHub : Choosing your cloud GPU p...

  • ruby+gem常用命令

    ruby -v #查看ruby 版本 ruby -e ''require"watir"; puts Watir::...

  • Ruby学习与Cocoapods

    一. Ruby的调试 Ruby安装 Ruby Vs Python Python的解析器实现更成熟,第三方库质量高。...

  • 【五行论水】

    壬vs癸阳vs阴动vs静白vs黑勇vs谋狂vs逸涛vs渗敏vs睿急vs缓响vs寂奔vs驻吐vs纳 。。。。。。 水...

  • 【土为何物】

    戊vs己阳vs阴厚vs薄重vs轻凸vs平实vs虚深vs浅伟vs卑藏vs盖信vs疑稳vs浮强vs弱 土代表环境环境寓...

网友评论

    本文标题:ruby(p vs puts vs print)

    本文链接:https://www.haomeiwen.com/subject/rlspsttx.html