為什麼很多語言中,要用三個引號或其他符號來表示多行字元串字面量?
01-28
這有什麼必要嗎?perl 和 rust 只用一個引號沒什麼問題吧…
但是老的語言如 python(三個引號)等,新的語言如 go(反引號)、swift(三個引號)、ES6(反引號)、TOML(三個引號)等都由刻意區分單行字元串和多行字元串的寫法,這是出於什麼原因呢?ES6 即使將一個引號擴展成可以用於多行字元串也不會有兼容性問題吧…?
這個叫「heredoc」,起源於Unix shell,之後在許多Unix Style的編程語言中都有實現,比如Perl、PHP、Ruby,當然也包括Python,它是多行字元串字面量的一種形式,會保留文本原來的模樣,包括引號、換行符及各種whitespace(空格、Tab)。
PHP中的heredoc可以引用變數:
比如:
&
&
&
&
&
&
{$name}&
&&