2013-10-15 4 views
35

Как получились, что этой строкаCoffeeScript многострочных строк компиляции в многострочные строки

"answer 
to life 
the universe 
and everything 
is 
#{40+2} 
" 

компилируется в

" answer to life the universe and everything is " + (40 + 2) + ""; 

, как я могу заставить coffescript держать его многострочный (сохраняя строку интерполяция нетронутая):

"answer \ 
to life \ 
the universe \ 
and everything \ 
is \ 
"+(40+2) 

ответ

65

Попробуйте использовать синтаксис heredoc:

myString = """ 
answer 
to life 
the universe 
and everything 
is 
#{40+2} 
""" 

Это преобразующий к этому JavaScript:

var myString; 

myString = "answer\nto life\nthe universe\nand everything\nis\n" + (40 + 2); 

Там на самом деле не какой-либо пункт, чтобы сделать это на самом деле быть на символы новой строки в скомпилированный JavaScript визуально, есть?

+0

нет, я хочу их визуально быть на новых линий в JavaScript ... кажется, это довольно невозможно – Agzam

+7

@Agzam: Почему вам все равно, как выглядит сгенерированный JavaScript? Этот материал не предназначен для потребления человеком. –

+0

Да, почему это имеет значение? – nzifnab

14

Я согласен, что при определении длинных строк приятно сохранять отступы. Вы можете использовать строку добавления этого эффекта в CoffeeScript так же, как вы можете в JavaScript:

myVeryLongString = 'I can only fit fifty-nine characters into this string ' + 
        'without exceeding eighty characters on the line, so I use ' + 
        'string addition to make it a little nicer looking.' 

оценивающего к

'I can only fit fifty-nine characters into this string without exceeding eighty characters, so I use string addition to make it a little nicer looking.' 
Смежные вопросы