经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Ruby » 查看文章
ruby puts, print, p方法比较
来源:cnblogs  作者:掘屎男孩  时间:2018/9/25 20:35:12  对本文有异议

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编码

  1. str = "\u5473\u9053\u4e0d\u9519"
  2. puts str #=> 味道不错
  3. str = ["\u5473\u9053\u4e0d\u9519", "\u5473\u9053\u4e0d\u9519", ["\u5473\u9053\u4e0d\u9519"]]
  4. puts str
  5. #=> 味道不错
  6. #=> 味道不错
  7. #=> 味道不错
  8. str = {a:"\u5473\u9053\u4e0d\u9519"}
  9. puts str #=> {:a=>"\u5473\u9053\u4E0D\u9519"}
  10. puts str[:a] #=> 味道不错

 

2.print([arg1[, arg2, ...]])

print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符

 

3.p(obj, [obj2, ...])

以通俗易懂的方式输出obj。等同于以下代码

  1. print obj.inspect, "\n", obj2.inspect, "\n", ...
  1. p "\u5473\u9053\u4e0d\u9519" #=> "\u5473\u9053\u4E0D\u9519"
  1. p不会识别双引号内的转义符,并自动换行

    所以p puts主要是用途的不同,p 是作为 debug 输出,而 puts 作为对象的字符串表示输出
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号