使用“puts”显示多行的首选样式

Preferred style for displaying multiple lines using `puts`

我知道有几种不同的方法可以将 puts 语句合并为一个。但更重要的是,我正在尝试确定是否有一个普遍的 accepted/preferred 风格(我只能挖掘其他人的聪明方法,但没有关于首选风格的真正参考)。

我见过这样的事情:

puts "This", "is", "fairly", "easy"  # Each word goes on it's own line

或者也许:

puts ["This", "seems", "convoluted"].join("\n") # Each word goes on it's own line

或"ugly"方式:

  def ugly_puts
    puts "Not using quotes
And using no code indentation to preserve output formatting"
  end

或者简单地说:

puts "This"
puts "Seems" 
puts "Straightforward."

对我来说使用最后一种方法最有意义,但我很好奇是否有 common/preferred 我应该像这样处理多行输出的方法。

TL;DR 偏好和可读性

我搜索了以下 ruby 风格指南:

Ruby Style Guide

bbatsov's Ruby Style Guide

他们都没有提到打印多个 puts 语句的任何特定或首选方法。

我觉得既有情境又有优惠。在这种情况下什么更具可读性?如果您有几个长的 puts 语句作为简单的字符串,请将它们拆分为多行的单独 puts 语句。

puts "Something very longgggggggggggg"
puts "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an..."
puts  "unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing..."

如果您出于某种原因将单独的语句存储在变量中,只需将它们全部放在一行中:puts this, that, thing.

为了在方法中存储 puts 语句,当您想在控制台中打印多行时,这可能会很方便。例如,当制作一个用户可以通过终端进行交互和使用的程序时,您可能希望将某些语句存储在一个方法中,并在用户调用时将它们打印出来(即打印出指令,或打印出可用命令)。

如果要打印的行足够短,可以在源代码中放在一行中,那么我会选择您的第一个选项:

puts "This", "is", "fairly", "easy"

如果它们很长,那么我会使用 heredoc:

puts <<_.unindent
  This Blah Blah ...
  Seems Blah Blah ...
  Straightforward. Blah Blah ...
_

其中 unindent 是一种按照 Ruby indented multiline strings 中建议的行取消缩进的 heredoc 的方法。请注意,在 Ruby 的未来版本中,很可能会有一种更简单的方法来取消缩进 heredoc,因此此选项将变得更有用。

我认为使用您的第二个或第四个选项没有意义。可以用第三个,但是比较难看