ruby puts, print, p方法比较
1.puts([obj[, obj2[, ....]]] )
依次将obj和换行符输出到$>。若没有参数的话则只会输出换行符。
若参数是数组,则依次输出数组元素和换行符。若将既非数组又非字符串的对象传递给参数时,将尝试使用使用to_s方法将其化为字符串。若是nil则输出字符串"nil"。
若参数是以换行符结尾时,puts将不再输出换行符。
注意:当obj为string或者array时,puts会对obj里面的转义符号进行转义;如果不是,比如Hash类型,就直接先调用to_s方法,将其转化为字符串,这里是不会对转义进行处理的,所以当我们通过 key-value 对hash进行访问时,如果value为 string或array 中包含转义字符还是会转义的;在做接口测试时,解析json串中,有时中文显示成unicode编码
str = "\u5473\u9053\u4e0d\u9519" puts str #=> 味道不错 str = ["\u5473\u9053\u4e0d\u9519", "\u5473\u9053\u4e0d\u9519", ["\u5473\u9053\u4e0d\u9519"]] puts str #=> 味道不错 #=> 味道不错 #=> 味道不错 str = {a:"\u5473\u9053\u4e0d\u9519"} puts str #=> {:a=>"\u5473\u9053\u4E0D\u9519"} puts str[:a] #=> 味道不错
2.print([arg1[, arg2, ...]])
print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符
3.p(obj, [obj2, ...])
以通俗易懂的方式输出obj。等同于以下代码
print obj.inspect, "\n", obj2.inspect, "\n", ...
p "\u5473\u9053\u4e0d\u9519" #=> "\u5473\u9053\u4E0D\u9519"
p不会识别双引号内的转义符,并自动换行<br /><br /><strong>所以p 和 puts主要是用途的不同,p 是作为 debug 输出,而 puts 作为对象的字符串表示输出</strong><br />
相关推荐
wangzhaotongalex 2020-10-20
MaggieRose 2020-08-19
csxiaoqiang 2020-07-26
modaiairen 2020-06-28
山水沐光 2020-06-25
ItBJLan 2020-06-11
长安长夜Saint 2020-06-07
ericxieforever 2020-06-05
sdwylry 2020-06-02
nercon 2020-06-02
poplpsure 2020-05-27
lancanfei 2020-04-11
正则表达式是啥?正则表达式又叫作“规则表达式”,是计算机科学的一个概念。它常被用来搜索、替换那些符合某个模式的文本。在有换行符时认为\n前为一行、\n后为一行。,这时正则匹配,取值会以最小个数为基准;
白马王 2020-02-24
samtrue 2020-04-27
RocNg 2020-05-11
Summer的小屋 2020-05-10
qshpeng 2020-03-06
leap 2020-03-03
jyj00 2020-02-19