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不会识别双引号内的转义符,并自动换行

所以p 和 puts主要是用途的不同,p 是作为 debug 输出,而 puts 作为对象的字符串表示输出

最新文章

  1. Linux网络编程的一般步骤(1)
  2. How to crack interviews ...
  3. hdu 5693 朋友 博弈
  4. WScript中调用js方法
  5. Network Saboteur(搜索)
  6. ABP展现层——Javascript函数库
  7. php中利用array_filter过滤数组为空值
  8. android-iconify 使用详解
  9. 关于signal和fork的思考
  10. struts2--值栈
  11. centos安装MySQL5.7
  12. Element-ui 更新tableData 中 row的某一个属性时,没有更新视图的问题
  13. Cestos7安装Elasticsearch5.4.3
  14. Streaming从Spark2X迁移到Spark1.5 summary
  15. RNA测序相对基因表达芯片有什么优势?
  16. 使用ADB无线连接Android真机进行调试
  17. UI设计,使用感知分层技术
  18. Oracle Supplemental 补全日志介绍
  19. libevent源码学习
  20. Android PendingIntent小结

热门文章

  1. git bash 出现vim弹框的时候怎么退出
  2. Mysql使用binlog恢复数据解决误操作问题的两种方法
  3. 转载:eclipse 搭建SSH项目(第一篇)
  4. 15. DML, DDL, LOGON 触发器
  5. Linux ip命令详解
  6. openoffice centos7.4 安装
  7. 面对对象程序设计_task2_C++视频教程
  8. Git操作(提高篇)
  9. php实现动态随机验证码机制(CAPTCHA)
  10. 基于easyui开发Web版Activiti流程定制器详解(二)——文件列表