Ruby中puts,p和print的区别

Python021

Ruby中puts,p和print的区别,第1张

(1)puts会识别双引号内的转义符,并自动换行

(2)p不会识别双引号内的转义符,并自动换行

(3)print会识别双引号内的转义符,不自动换行

点击(此处)折叠或打开

irb(main):003:0>puts "a", "\nb"

a

b

=>nil

irb(main):004:0>p "a", "\nb"

"a"

"\nb"

=>nil

irb(main):005:0>print "a", "\nb"

a

b=>nil

message 是一个字符

regex 是一个正则表达式

message.scan(regex)得到 符合regex这个正则表达式的一个数组

message.scan(regex).each{|m|puts"#{m[0]}"} 中 m是数组中的每一个元素,是一个字符串,m[0]就是m的第一个字符

所以message.scan(regex).each{|m|puts"#{m[0]}"} 就是打印message符合regex的结果的每一个元素的第一个字符

putc 方法 :一次只输出一个字符

ASCII码中,十进制数123 对应的字符是“{”

所以 putc(123) 运行的结果是:{

再举两个例子:

例1:

#!/usr/bin/ruby

str="Hello Ruby!"

putc str #一次只输出一个字符

输出结果:

H

例2:

#!/usr/bin/ruby

aFile = File.new("/var/www/tutorialspoint/ruby/test", "r")

if aFile

aFile.syswrite("ABCDEF")

aFile.each_byte {|ch| putc chputc ?. }

else

puts "Unable to open file!"

end

输出结果:

T.h.i.s. .i.s. .l.i.n.e. .o.n.e.

.T.h.i.s. .i.s. .l.i.n.e. .t.w.o.

.T.h.i.s. .i.s. .l.i.n.e. .t.h.r.e.e.

.A.n.d. .s.o. .o.n.......