8

私はこの質問に来ます:

 f = (param) ->
      console.info '#{param}'
 f(1)

結果は#{param}

文字列を二重引用符で囲むと、これは単に print 1. Rubyでもテストしましたが、動作は同じです。しかし、それは CoffeeScript.org のルールと矛盾しています。

CoffeeScript の黄金律は、「単なる JavaScript である」ということです。

Javascript で考えているので、シングル クォーテーションとダブル クォーテーションは同等に扱われます。また、Ruby はあまり使用しません。誰でも理由を説明できますか?

どうもありがとう。

4

2 に答える 2

15

CoffeeScriptのドキュメントから:

Ruby スタイルの文字列補間は、CoffeeScript に含まれています。二重引用符で囲まれた文字列は、#{ ... } を使用して補間された値を許可し、単一引用符で囲まれた文字列はリテラルです。

于 2012-08-23T02:35:41.857 に答える
11

「単なる JavaScript です」とは、基本的に通常の JavaScript にコンパイルされ、根本的に異なるプログラミング パラダイムを採用して JavaScript にコンパイルしようとしないことを意味します。CoffeeScript は主に、データ型などの根本的に異なる基本構造を導入するのではなく、「悪い部分」、ボイラープレート、および不要な構文を回避することに関心があります。

JavaScript には文字列補間がありません。CoffeeScript はこれを Ruby から便利に取り入れています。一重引用符に対して無効にすると、補間を解釈せずに文字列を取得するクリーンな方法が得られます。

It's just JavaScriptをIt IS JavaScriptと解釈しないでください。それはフレーバー/バリアント/兄弟です。

于 2012-08-23T02:40:06.190 に答える