web-dev-qa-db-fra.com

compilation de chaînes multilignes coffeescript en chaînes multilignes

Comment se fait-il que cette chaîne

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

compile en

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

comment puis-je forcer coffescript pour le garder multiligne (en gardant l'interpolation de chaîne intacte):

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

Essayez d'utiliser la syntaxe heredoc:

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

Cela se transforme en ce javascript:

var myString;

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

Il n'y a pas vraiment de raison de le faire visuellement sur les nouvelles lignes dans le javascript compilé, n'est-ce pas?

74
nzifnab

Je suis d'accord qu'il est agréable de pouvoir conserver votre indentation lors de la définition de longues cordes. Vous pouvez utiliser l'ajout de chaînes pour cet effet en coffeescript comme vous le pouvez en 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.'

évalue à

'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.'
19
HandyAndyShortStack