Предпочтительный стиль для отображения нескольких линий с использованием `путов`

Я знаю, что есть несколько разных способов объединить операторы puts в один. Но что еще более важно, я пытаюсь определить, есть ли для этого общепринятый/предпочтительный стиль (мне удалось откопать только умные способы других людей, но нет реальной ссылки на предпочтительный стиль).

Я видел такие вещи:

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

или "уродливый" способ:

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

или просто:

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

Для меня имеет смысл использовать последнюю методологию, но мне просто любопытно, есть ли общий/предпочтительный способ, которым я должен заниматься с многострочным выводом, подобным этому.


person Tony DiNitto    schedule 18.11.2015    source источник


Ответы (2)


Если строки для печати достаточно короткие, чтобы их можно было объединить в одну строку в исходном коде, я бы выбрал ваш первый вариант:

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

Если они длинные, то я бы использовал heredoc:

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

где unindent – это метод удаления отступа в этом документе по строкам, предложенным в разделе многострочные строки с отступом Ruby. Обратите внимание, что в будущих версиях Ruby, скорее всего, будет более простой способ убрать отступ для heredoc, так что эта опция станет более полезной.

Я не вижу смысла использовать ваш второй или четвертый вариант. Третий можно использовать, но он выглядит некрасиво.

person sawa    schedule 18.11.2015
comment
Другим может быть полезно знать, что unindent выглядит как драгоценный камень Ruby, который необходимо установить, прежде чем этот стиль сможет работать. - person Tony DiNitto; 18.11.2015

Предпочтение TL;DR и удобочитаемость

Я изучил следующие руководства по стилю ruby:

Руководство по стилю Ruby

Руководство по стилю Ruby от bbatsov

Ни в одном из них не упоминается какой-либо конкретный или предпочтительный метод печати множественных операторов put.

Я думаю, что это и ситуативно, и предпочтительно. Что читабельнее в ситуации? Если у вас есть несколько длинных операторов 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 в методе может быть удобно, когда вы хотите вывести несколько строк в консоль. Например, при создании программы, в которой пользователь будет взаимодействовать и использовать через терминал, вы можете захотеть сохранить определенные операторы в методе и при вызове пользователя распечатать их (т.е. распечатать инструкции или распечатать доступные команды).

person philip yoo    schedule 18.11.2015