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 作为对象的字符串表示输出

ruby puts, print, p方法比较的更多相关文章

  1. Ruby中print、p、puts的区别

    三个方法的作用都是将一个字符串打印到控制台  比较项目  puts  print p   换行符 末尾添加换行符  末尾不加换行符  末尾添加换行符  非字符串对象的输出  调用该对象的to_s方法 ...

  2. [置顶] ruby复制对象的方法(dup 和 clone)

    Ruby内置的方法Object#clone和Object#dup可以用来copy一个对象,两者区别是dup只复制对象的内容,而clone还复制与对象相关联的内容,如singleton method [ ...

  3. ruby中的私有方法和保护方法

    ruby中的私有方法是指方法只能被隐含调用,不能被显示调用.而当没有显示接收者的时候,会把self当成接收者.因此,只能在自身中调用私有方法,这也是私有方法的调用规则. ruby的私有方法机制目的是: ...

  4. Ruby字符串的一些方法

    最近因为公司需求开始看ruby,先从ruby的基本数据类型开始看 看到ruby的字符串类型string,发现ruby中的字符串单双引号是不一样的,这点和Python有那么点不一样 主要是我们对字符串进 ...

  5. ruby读写文件的方法

    读文件 #Ruby 读取文件 #方法一 file = File.open("/Users/Desktop/demo.txt","r") while line = ...

  6. 雷林鹏分享:Ruby Dir 类和方法

    Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1 ...

  7. 雷林鹏分享:Ruby File 类和方法

    Ruby File 类和方法 File 表示一个连接到普通文件的 stdio 对象.open 为普通文件返回该类的一个实例. 类方法 序号方法 & 描述 1File::atime( path) ...

  8. Ruby升级的最新方法/CocoaPods安装

    今天安装cocoapods时候出现了下面的提示 Error installing pods:active support requires Ruby version >= 2.2.0//这个需求 ...

  9. ruby中的顶层方法

    在ruby中写顶层函数的时候,总会有一个问题,self是谁,这些方法是谁的,是什么方法. 如下: p self p self.class def talk p self end talk 输出main ...

随机推荐

  1. MySql与SqlServer的区别

    1.SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运 ...

  2. python 字符串的方法和注释

    capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 c ...

  3. Oracle案例10——HWM(高水位线)性能优化

    最近BI同事反馈说一张表的数据查询非常慢,这个表数据总共不到1W行数据,这么一说我们首先想到的是高水位带来的性能问题,即高水位线下占用过多数据块,而这些数据块其实是部分数据占用,大多数是空闲的数据块. ...

  4. maskView遮罩中多张图片的动画

    maskView遮罩中多张图片的动画 说明 用多张图片做遮罩效率极高,非常好理解,而且极其美观! 效果图 素材 源码 // // ViewController.m // FeedBack // // ...

  5. 关于print缩不缩进%有else没else的影响

    关于print缩不缩进%有else没else的影响 if gender == "男": # = 赋值. == 判断print("上厕所")else: print ...

  6. select 下拉框 disabled 则 Form 获取不到值

    select 下拉框 disabled 则 Form 获取不到值 有时候需要禁用 下拉框 , 但是表单又需要获取到 下拉框的值. 解决方案1: 使用文本框和隐藏域 来代替下拉框 disabled 解决 ...

  7. JQuery Mobile+JS实现智能浮动定位导航条

    实现原理 主要用到几个知识点: 什么是scrollTop? CSS position定位 判断是否为IE6浏览器 元素相对于窗口的距离 原理:1,浏览器向下滚动时,当document的scrollTo ...

  8. 记一次webservice的超时时间设置

    一次项目组中需要控制超时时间,前期习惯用CXF实现,熟悉的才是最好的.所以这次依然想用CXF实现. 实现的方式代码如下: static{ String fvpWebserviceUrl = Prope ...

  9. 学习python第三天之多行函数

    多行函数:(聚合函数/分组函数) 解释:多条数据进入,单条结果出来(多进单出) 1).max(obj):最大值 2).min(obj):最小值 3).sum(num):求和 4).avg(num):求 ...

  10. [USACO08DEC]Patting Heads

    嘟嘟嘟 这题还是比较水的.首先O(n2)模拟显然过不了,那就换一种思路,考虑每一个数对答案的贡献,显然一个数a[i]会对后面的a[i] * 2, a[i] * 3,a[i] * 4……都贡献1,.那么 ...