JavascriptでHereDoc(複数行の文字列リテラル)

JavascriptでHereDocのやりかたがわかった。


var lines=().toString();
mookから教わった: http://mook.wordpress.com/2005/10/30/multi-line-strings-in-javascript/
言語に組込まれているシンタクスではなくて、XML拡張機能を使っているようだ。Firefox3.xでは動くが、Rhino(1.7 release 1 2008 11 26)ではXMLが無いと叱られる(ReferenceError: "XML" is not defined)。

JavaScritでHTMLのテンプレートを扱うときに重宝する機能だ。

ついでに、他言語でのやりかたも復習しておく。

heredocの元祖: shell


$ cat < x
> foo
> bar
> baz
> EOT
$ cat x
foo
bar
baz
やっぱりシェルって偉いな。

perl


my $lines=<<__END__; foo bar baz __END__ print $lines, "\n";

Perlがshellから吸収してるのがよくわかる。

python


>>> lines="""
... foo
... bar
... baz
... """
>>> lines
'\nfoo\nbar\nbaz\n'

シンタックスの綺麗さではやはりPythonが一番。