【问题标题】:How to add extra newline with 'puts' without sticking newline character into string?如何在不将换行符粘贴到字符串中的情况下使用“puts”添加额外的换行符?
【发布时间】:2010-10-12 23:50:39
【问题描述】:

如果我说

puts "Hello"

并决定添加一个额外的换行符,我需要这样做:

puts "Hello\n"

在字符串中有这个字符是丑陋的。有什么方法可以做到这一点而不污染我的字符串?

【问题讨论】:

  • 实际上,为了添加额外的换行符,您需要执行 puts "Hello \n\n" since puts` 吃掉第一个换行符。我猜它假设你没有意识到它会自动添加一个。

标签: ruby string newline


【解决方案1】:

再拨打puts:

puts "Hello"
puts

【讨论】:

  • 我尝试了其他示例,但没有成功,效果很好。
  • 我需要在 puts 之后添加一个字符串:puts ""
【解决方案2】:
puts "Hello",""

【讨论】:

  • 聪明,但妨碍了可读性。额外的 put 更容易理解。
  • @Dennis 我非常不同意,额外的 put 几乎看起来像一个错误。有了这个,它可以说是更干净的代码。输入字符串后立即输入一个空字符串,作为回车符。
  • @djowinz 这种方法的问题在于它在做什么并不明显,因为它很少使用。一般的 Ruby 程序员不知道puts 接受一个数组参数以及结果是什么。但在任何语言中,两次调用惯用的 print 方法的作用是相当明显的。
  • @Dennis 普通程序员不知道puts 接受数组参数,但知道puts 带有no 参数会打印换行符?我对此表示怀疑。
  • @cozyconemotel 我已经放宽了立场,因为我现在也得到了他们期望puts 返回参数错误的响应。我想最终puts "Hello\n" 是最明确的。 ¯\_(ツ)_/¯
【解决方案3】:

我经常发现自己在 ruby​​ 中添加一个常量来包含这些字符

NEW_LINE = "\n"

puts "Hello" + NEW_LINE

我认为它更具可读性,并且如果有人决定在以后的某个日期用其他东西分隔每一行,则可以轻松更改所有换行符。

【讨论】:

    【解决方案4】:

    你觉得这个好看吗?

    
    puts "Hello"+$/
    

    邪恶>

    【讨论】:

      【解决方案5】:

      Ruby 使用“\n”作为换行符的原因是因为它基于 C。Ruby MRI 是用 C 编写的,甚至 JRuby 也是用基于 C++ 的 Java 编写的,Java 是基于 C 的......你得到了主意!所以所有这些 C 风格的语言都使用“\n”作为新行。

      您始终可以编写自己的方法,该方法的作用类似于 puts,但会根据方法的参数添加新行。

      【讨论】:

        【解决方案6】:

        你可以写

        p "Hello"
        p 
        

        如果你想保持简短和简单,这应该也可以

        【讨论】:

        【解决方案7】:

        嗯,我不认为明确的换行是丑陋的。 mipadi 的回答也很好。只是为了输入另一个答案,制作一个行数组,然后用换行符加入数组。 :)

        【讨论】:

          【解决方案8】:

          您想要解决的问题: 脚本输入:

          puts "Hello there"
          puts "Goodbye"
          

          脚本输出:

          Hello thereGoodbye
          

          解决问题: 脚本输入:

          puts "Hello there"
          puts
          puts "Goodbye"
          

          脚本输出:

          Hello there
          Goodbye
          

          【讨论】:

          • 你应该编辑你的答案,让它更容易理解。
          • 除非我误解了某些东西,否则您所说的基本上与多年前发布的公认答案相同。您的答案有什么可以补充现有答案的吗?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-20
          相关资源
          最近更新 更多