2013-03-02 12 views
45

私はgradleに慣れ親しんでいますが、現在はチュートリアルに従っています。かなり多くの場合、一重引用符と二重引用符が混在しています。私はちょうど1つのセットが他のものよりも使用されるべきときの違いがあるかどうかを知りたいと思っていました。その一例は、チュートリアルのセクション6.12 - Default tasks:だからGradle Single対Double Quotes

​​

、私はちょうど私がこれらの違いに注意を払ったり、彼らが相互changableあると私は、単一のいずれかを使用することができるかどうすべきかどうか知りたいのですが文字列をgradleで印字するときは二重引用符で囲みます。

答えて

51

GradleのビルドスクリプトをGroovyで書かれています。 Groovyには二重引用符と一重引用符の両方の文字列リテラルがあります。

def x = 10 
println "result is $x" // prints: result is 10 

は、あなたがウェブ上thisまたは他のGroovyの記事でGroovyの文字列の補間についての詳細を学ぶことができます。主な違いは、二重引用符で囲まれた文字列リテラルは、文字列の補間をサポートしていることです。

+1

明確な説明をありがとう。しかし、今私は質問をフォローアップしている、二重引用符を常に使用しない理由はありますか? –

+1

ほとんどの主観的/状況的なものは、「もっとよく見える」、「別の言語のこのスタイルに慣れ親しんでいる」、「エスケープしないで文字通り '$」や「」を使いたい、引用符を変更せずに文字列補間を追加/削除できるので、二重引用符を使用することをお勧めします。また、Javaなどの言語から二重引用符を使用することもあります。 –

11

はい、どちらか一方を使用できます。唯一の違いは、二重引用符で囲まれた文字列がthe Groovy documentationから取った次の例のように評価される式を含めることができますGStringの、できることです。

foxtype = 'quick' 
foxcolor = ['b', 'r', 'o', 'w', 'n'] 
println "The $foxtype ${foxcolor.join()} fox" 
// => The quick brown fox 
+0

二重引用符で囲まれた文字列リテラルは、 '$'を含む場合は 'GString'です。そうでなければ、それらは普通の 'String'です。 –

+0

ありがとうございました。私は私の答えを更新しました。 –