Ruby:p,puts,print比较
来源:互联网 发布:英文版淘宝网swto分析 编辑:程序博客网 时间:2024/05/16 10:21
在rails 开发中,最基本的检测错误的方法,莫过于 puts 和 p 的输出了。。。。那么 它们有什么区别呢。。。
查了下, 说 p 是经过 inspect 的,inspect的字面意思是 检查 ,貌似 是检查 占位符 ,但是还是云里雾里
看两个demo
one:
p “a”, “/nb”
结果:
“a”
“/nb”
two:
class SomeClass
def initialize (arg_1, arg_2) # called with SomeClass.new
@member_1 = arg_1
@member_2 = arg_2
end
def print
puts “member_1: ” + @member_1
puts “member_2: ” + @member_2
end
end
sc1 = SomeClass.new(‘foo’, ‘bar’)
puts sc1.inspect
p sc1
puts sc1
结果:
#<SomeClass:0xb7c091b4 @member_1=”foo”, @member_2=”bar”>
#<SomeClass:0xb7c091b4 @member_1=”foo”, @member_2=”bar”>
#<SomeClass:0xb7c091b4>
还有就是我们 最常用到的。。。查询数据库中一条数据记录集
@post = BlogPost.find(params[:id])
p @post
puts @post
结果:
#<BlogPost id: 18, blog_id: 30, topic_id: nil, client_info_id: nil, title: “测试”, body: “测试测试测试测试测试测试测试测试测…”, blog_post_comments_count: 0, type: “BlogPost”, created_at: “2009-08-24 03:56:27″, updated_at: “2009-08-24 03:56:27″>
#<BlogPost:0xb595b8b0>
这样 看起来 更一目了然。。。,p 把数据库中的 字段 和值 都输出 了, puts 只输出 一个 对象的标识。。。
共同点:都是用来屏幕输出的。
不同点:
puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号);另外如果内容参数中有转义符,输出时将先处理转义再输出
p 基本与puts相同,但不会处理参数中的转义符号
print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符
1
s =
"aaaa/nbb/tbb"
2
3
p s
4
p
"****************"
5
puts s
6
p
"****************"
7
print s
输出结果为(SciTE编辑器环境):
"aaaa/nbb/tbb"
"****************"
aaaa
bb bb
"****************"
aaaa
bb bb>Exit code: 0
ref:
http://www.adp-gmbh.ch/ruby/language/inspect.html
http://stackoverflow.com/questions/1255324/p-vs-puts-in-ruby
http://blog.chinaunix.net/u1/37038/showart_489434.html
- Ruby:p,puts,print比较
- Ruby的p puts print
- Ruby学习札记(6)-比较print、puts和p方法
- Ruby学习札记(6)-比较print、puts和p方法
- ruby中的打印函数print | puts | p
- ruby学习笔记(10)-puts,p,print的区别
- Ruby中puts、p和print的区别?
- 新人学ruby---print、puts和p的区别
- [Ruby笔记]2. ruby基础的基础: irb --simple-prompt / puts print p/ false nil
- puts,p,print的区别
- puts,p,print的区别
- ruby puts和print的区别
- c++里 p.print() 和 p->print() 有什么区别
- puts()
- puts
- puts ()
- Python、Lua和Ruby比较——脚本语言大P.K.
- print,cout比较
- java.util.ConcurrentModificationException
- Iframe完美自动调整高度
- 已推出可解决 Windows Embedded CE 6.0 R3 性能问题的更新(2011 年 1 月版)
- 程序员的美:极致与疯狂
- DLL精要
- Ruby:p,puts,print比较
- Next ESA SAR Toolbox(1)— 什么是SAR 图像
- 有关析构函数的心得
- 程序员流行曲
- 纵横三国外挂手记(4) 实现篇
- WAV文件格式研究笔记
- Nokogiri 中文乱码的几种情况
- 从EXCEL中抽取层次结构
- Fix the issue: JVM terminated. Exit code=-1