首先,为了比较这3个方法的不同,打开Ruby的irb(即Interactive Ruby。没有?在“开始菜单”里找找吧,或者直接在Ruby安装目录下bin目录中找到irb.bat,拖到CMD中即可)。irb是Ruby编程交互式的环境,每输入一行代码,irb会出现提示。虽然手动输入很慢,但是写些小程序还是很方便直观的。
好了,直接进入文章的正题吧。
print方法一般输出字符串,不会自动换行,举个HelloWorld吧。
irb(main):018:0> print("Hello, Ruby.") Hello, Ruby.=> nil
puts方法则会自动换行,如下
irb(main):019:0> puts("Hello, Ruby.") Hello, Ruby. => nil
p方法的HelloWorld,如下
irb(main):020:0> p("Hello, Ruby.") "Hello, Ruby." => "Hello, Ruby."
可见p方法也和puts方法一样会自动换行,并且有返回值,即输出的字符串,而print和puts的返回值为nil。
同时,p方法会区别字符串和数字,例如
irb(main):021:0> p("100") "100" => "100" irb(main):022:0> p(100) 100 => 100
而print和puts不会区分字符串和数字,例如
irb(main):024:0> print(100) 100=> nil irb(main):025:0> print("100") 100=> nil irb(main):026:0> puts(100, "100") 100 100 => nil
可以看到输出都是100,这里puts方法带了2个参数,print和p也可以使用多个参数。
最后,print、puts和p方法的区别其实很简单吧。