可能这是一个重复的问题,打印和放在Ruby中有什么区别?我可以用例子来回答吗?打印和放入Ruby的例子有什么区别?
回答
irb(main):014:0> class Person
irb(main):015:1> attr_accessor :name, :age, :gender
irb(main):016:1> end
=> nil
irb(main):017:0> person = Person.new
=> #<Person:0x2bf03e0>
irb(main):018:0> person.name = "Robert"
=> "Robert"
irb(main):019:0> person.age = 52
=> 52
irb(main):020:0> person.gender = "male"
=> "male"
irb(main):021:0> puts person
#<Person:0x2bf03e0>
=> nil
irb(main):022:0> print person
#<Person:0x2bf03e0>=> nil
irb(main):023:0> print person.name
Robert=> nil
irb(main):024:0> puts person.name
Robert
=> nil
打印并提出之间的区别在于,自动将移动输出光标到下一行(即,它增加了一个新行字符,除非串已经以新行结束以开始一个新的线),而打印将继续将文本打印到与上一次相同的行上。
puts的前缀并不是要完成该方法的类或对象的名称,puts是从内核模块提供并且默认包含和搜索的方法,所以通常您不需要使用Kernel.puts来引用它。
Kernel.puts "Hello, world!"
puts只接受一个参数,很少跟随其他方法或逻辑,所以括号不是必须的。
'puts'会添加换行符以开始新行,除非字符串已经以换行符结束。 – steenslag 2013-02-28 00:02:38
@steenslag - 你是对的,改变了答案,谢谢 – 2013-02-28 00:06:05
print
不在最后添加换行符。puts
的确如此。
大多数其他语言也有类似的结构。
Java有System.out.println()
和System.out.print()
C#有Console.WriteLine()
和Console.Write()
帕斯卡有Writeln()
和Write()
可以print vs put待见的比较。例如看看Input & output in Ruby。
很简单。打印时,puts
自动附加新行。 print
无需修改即可打印字符串。
另一个区别在于底层写入操作的数量。 puts
(大致)等价于:
STDOUT.write(str)
STDOUT.write("\n")
而且print
(大致)等价于:
STDOUT.write(str)
因此,在多线程环境,puts
可以创造出一些怪异的东西,像这样:
Message1Messa
ge2
(blank line)
虽然print
带连接换行符的字符串产生:
Message1
Message2
除此之外,它们是相同的。
投入和印刷之间有两个主要的区别。
1。新线
puts
参加一个换行符每个元素并打印(不指定新的行字符"\n"
到底需要)
而打印在一个新的生产线,除非程序员不打印的每个元素明确指定它。
puts "Hello, Welcome to Ruby"
输出:
Hello, Welcome to Ruby
Dell-System-XPS:~/Documents/2016RoR/Ruby$
print "Hello, Welcome to Ruby"
输出:
你有没有注意到,有输出之后没有新的生产线。 然而,新行应为工作,当你明确提到像下面
print "Hello, Welcome to Ruby \n"
输出换行字符:
Hello, Welcome to Ruby
Dell-System-XPS:~/Documents/2016RoR/Ruby$
2.空字符或无价值观
print
语句打印空或NIL值,但如果语句包含NIL
val,则语句不打印它们你在里面。
> print [nil, 33,44,55]
> [nil, 33, 44, 55] => nil
> puts [nil, 33,44,55]
> 33
> 44
> 55
=> nil
“你看到的不同,有印刷,而使用puts
无NIL值”
- 1. Ruby和Ruby on Rails有什么区别?
- 2. Ruby中STDIN和$ stdin有什么区别?
- 3. Ruby on Rails和Grails有什么区别?
- 4. 有序树和有根树有什么区别? - 一个例子
- 5. 打印和格式化字符串文字有什么区别?
- 6. 对象和实例有什么区别?
- 7. Firebase - ref和孩子有什么区别?
- 8. 帖子和页面有什么区别
- 9. 插座和袜子有什么区别?
- 10. 叉子和线程有什么区别?
- 11. 函子和“泛型”有什么区别
- 12. .NET功能和C#功能有什么区别? (请用例子)
- 13. 这些对Perl打印的调用有什么区别?
- 14. 有什么区别`和$(Bash中有什么区别?
- 15. ==和===有什么区别?
- 16. ==和===有什么区别?
- 17. 有什么区别? :和||
- 18. ==和===有什么区别?
- 19. '=='和'==='有什么区别?
- 20. `&`和`ref`有什么区别?
- 21. 有什么区别:。!和:r!?
- 22. | 0和~~有什么区别?
- 23. Appender和〜有什么区别?
- 24. 此WHERE子句和此加入之间有什么区别?
- 25. 在Ruby中,类方法和类的单例方法有什么区别?
- 26. 之间有什么ESRI打印任务和出口网络地图的区别
- 27. Java中的引用。两个例子,有什么区别?
- 28. ASP.net实例模式有什么区别?
- 29. Ruby中的Object和BasicObject有什么区别?
- 30. Ruby的dup和clone方法有什么区别?
你为什么不自己试试? – oldergod 2013-02-27 23:56:54
请阅读 - 从新手到专业开始红宝石,我拿你的例子为你 – 2013-02-27 23:59:26
这绝对是一个重复:http://stackoverflow.com/questions/5018633/what-is-the-difference-between-print-and -puts?rq = 1 – nathanvda 2013-12-03 08:21:04