Niedawno w mojej pracy zdecydowaliśmy się na przewodnik w stylu ruby. Jednym z edyktów jest to, że żaden wiersz nie powinien być szerszy niż 80 znaków. Ponieważ jest to projekt Railsowy, często mamy łańcuchy, które są nieco dłuższe - tzn. „ Użytkownik X chciał wysłać Ci wiadomość o Rzecz Y ”, która nie zawsze mieści się w limicie 80 znaków.
Rozumiem, że istnieją trzy sposoby, aby długi ciąg obejmował wiele linii:
- HEREDOC
- % Q {}
- Rzeczywista konkatenacja łańcucha.
Jednak wszystkie te przypadki wymagają więcej cykli obliczeniowych, co wydaje się głupie. Oczywiście łączenie łańcuchów, ale dla HEREDOC
i %Q
muszę usunąć nowe linie za pomocą czegoś takiego .gsub(/\n$/, '')
.
Czy jest na to czysty sposób składni, który jest równoważny po prostu umieszczeniu całego łańcucha w jednym wierszu? Celem jest oczywiście, aby nie spędzać żadnych dodatkowych cykli tylko dlatego, że chcę, aby mój kod był nieco bardziej czytelny. (Tak, zdaję sobie sprawę z tego, że trzeba to zrobić dużo ... ale jeśli chodzi o długość struny, to po prostu wydaje się głupie.)
Aktualizacja: Odwrotne ukośniki nie są dokładnie tym, czego chcę, ponieważ tracisz wcięcia, co naprawdę wpływa na styl / czytelność.
Przykład:
if foo
string = "this is a \
string that spans lines"
end
Uważam, że powyższe jest trochę trudne do odczytania.
EDYCJA : poniżej dodałem odpowiedź; trzy lata później mamy teraz zawiłego heredoka.
\n
znaki nowej linii, czy nie. Najlepsza odpowiedź ich nie zachowuje, a jednak twoja odpowiedź tak. Pytanie brzmi „bez usuwania nowych linii” - ale opis mówi „[...] Muszę usunąć nowe linie”.