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