Мы недавно решили на моей работе использовать руководство по рубиновому стилю. Одним из указов является то, что ни одна строка не должна быть шире, чем 80 символов. Поскольку это проект Rails, у нас часто бывают строки, которые немного длиннее - то есть " Пользователь X хотел отправить вам сообщение о Thing Y ", которое не всегда укладывается в ограничение в 80 символов.
Я понимаю, что есть три способа иметь длинную строку, охватывающую несколько строк:
- Heredoc
- % Q {}
- Фактическая конкатенация строк.
Тем не менее, все эти случаи в конечном итоге занимают больше вычислительных циклов, что кажется глупым. Конкатенация строк, очевидно, но для HEREDOC
и %Q
я должен удалить символы новой строки, например .gsub(/\n$/, '')
.
Есть ли чистый синтаксический способ сделать это, что эквивалентно наличию всей строки в одной строке? Очевидно, что цель состоит в том, чтобы не тратить лишних циклов только потому, что я хочу, чтобы мой код был немного более читабельным. (Да, я понимаю, что вы должны сделать этот компромисс много... но для длины строки это просто кажется глупым.)
Обновление: обратная косая черта не совсем то, что я хочу, потому что вы теряете отступы, что действительно влияет на стиль/читабельность.
Пример:
if foo
string = "this is a \
string that spans lines"
end
Я нахожу вышеупомянутое немного трудным для чтения.
РЕДАКТИРОВАТЬ: я добавил ответ ниже; три года спустя у нас теперь волнистый наследственный синдром.