(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
共同点:都是用来屏幕输出的。不同点:
puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号);另外如果内容参数中有转义符,输出时将先处理转义再输出
p 基本与puts相同,但不会处理参数中的转义符号
print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符
s = "aaaa\nbb\tbb"
p s
p "****************"
puts s
p "****************"
print s
输出结果为:
"aaaa\nbb\tbb"
"****************"
aaaa
bb bb
"****************"
aaaa
bb bbend
另外,当ruby源程序使用utf-8编码时,用p汉字时会转换成unicode值
s ="中"
p s
puts s
print s
运行结果:
"\u4E2D"
中
中
#举个例子,分段函数的处理puts "Please input x:" #输出一些文字
x = gets #等待用户用键盘输入信息
if x<2 #以下是判断输入信息及根据输入信息进行引导
y = x+4
else
y = 2*x
end
puts "The result is:#{y}"#输出结果