【发布时间】:2010-10-12 23:50:39
【问题描述】:
如果我说
puts "Hello"
并决定添加一个额外的换行符,我需要这样做:
puts "Hello\n"
在字符串中有这个字符是丑陋的。有什么方法可以做到这一点而不污染我的字符串?
【问题讨论】:
-
实际上,为了添加额外的换行符,您需要执行
puts "Hello \n\n" sinceputs` 吃掉第一个换行符。我猜它假设你没有意识到它会自动添加一个。
如果我说
puts "Hello"
并决定添加一个额外的换行符,我需要这样做:
puts "Hello\n"
在字符串中有这个字符是丑陋的。有什么方法可以做到这一点而不污染我的字符串?
【问题讨论】:
puts "Hello \n\n" since puts` 吃掉第一个换行符。我猜它假设你没有意识到它会自动添加一个。
再拨打puts:
puts "Hello"
puts
【讨论】:
puts ""
puts "Hello",""
【讨论】:
puts 接受一个数组参数以及结果是什么。但在任何语言中,两次调用惯用的 print 方法的作用是相当明显的。
puts 接受数组参数,但知道puts 带有no 参数会打印换行符?我对此表示怀疑。
puts 返回参数错误的响应。我想最终puts "Hello\n" 是最明确的。 ¯\_(ツ)_/¯
我经常发现自己在 ruby 中添加一个常量来包含这些字符
NEW_LINE = "\n"
puts "Hello" + NEW_LINE
我认为它更具可读性,并且如果有人决定在以后的某个日期用其他东西分隔每一行,则可以轻松更改所有换行符。
【讨论】:
你觉得这个好看吗?
puts "Hello"+$/
邪恶>
【讨论】:
Ruby 使用“\n”作为换行符的原因是因为它基于 C。Ruby MRI 是用 C 编写的,甚至 JRuby 也是用基于 C++ 的 Java 编写的,Java 是基于 C 的......你得到了主意!所以所有这些 C 风格的语言都使用“\n”作为新行。
您始终可以编写自己的方法,该方法的作用类似于 puts,但会根据方法的参数添加新行。
【讨论】:
你可以写
p "Hello"
p
如果你想保持简短和简单,这应该也可以
【讨论】:
p 不会换行。 p "" 也不会,因为它将呈现 "",因为 p 给出了在字符串上调用 .inspect 的结果,而不是 .to_s。见:stackoverflow.com/questions/1255324/p-vs-puts-in-ruby
嗯,我不认为明确的换行是丑陋的。 mipadi 的回答也很好。只是为了输入另一个答案,制作一个行数组,然后用换行符加入数组。 :)
【讨论】:
您想要解决的问题: 脚本输入:
puts "Hello there"
puts "Goodbye"
脚本输出:
Hello thereGoodbye
解决问题: 脚本输入:
puts "Hello there"
puts
puts "Goodbye"
脚本输出:
Hello there
Goodbye
【讨论】: