私はgradleが初めてで、現在はチュートリアルに従うだけで、一重引用符と二重引用符が混在しているのを何度も見ています。あるセットを他のセットと比較して使用する場合に違いがあるかどうかを知りたかっただけです。この一例は、チュートリアルのセクション6.12です。 デフォルトタスク :
defaultTasks 'clean', 'run'
task clean << {
println 'Default Cleaning!'
}
task run << {
println 'Default Running!'
}
task other << {
println "I'm not a default task!"
}
したがって、これらの違いに注意を払う必要があるのか、それらが相互に変更可能であり、gradleで文字列を印刷するときに一重引用符または二重引用符を使用できるのかを知りたいだけです。
GradleビルドスクリプトはGroovyで記述されています。 Groovyには、二重引用符と単一引用符の両方の文字列リテラルがあります。主な違いは、二重引用符で囲まれた文字列リテラルが文字列補間をサポートすることです。
def x = 10
println "result is $x" // prints: result is 10
Groovy String補間の詳細については、 this またはWeb上の他のGroovyの記事をご覧ください。
はい、どちらでも使用できます。唯一の違いは、二重引用符で囲まれた文字列をGStringsにすることができることです。GStringsには、 Groovyドキュメンテーション から取得した次の例のような評価式を含めることができます。
foxtype = 'quick'
foxcolor = ['b', 'r', 'o', 'w', 'n']
println "The $foxtype ${foxcolor.join()} fox"
// => The quick brown fox
Gradleによると docs :
ビルドスクリプトリストのプレーン文字列に一重引用符を付ける
これは主にガイド全体の一貫性を確保するためですが、一重引用符は二重引用符よりもノイズが少ないです。文字列に埋め込み式を含める場合にのみ二重引用符を使用します。
単一引用符で囲まれた文字列は、単一引用符で囲まれた一連の文字です。お気に入り :
def str='a single quoted string'
println str
出力:
a single quoted string
一方、二重引用符で囲まれた文字列を使用すると、-文字列補間を使用できます。ここでは、ローカル変数を参照するプレースホルダーを持つ文字列があります。
def name = 'Guillaume' // a plain string
def greeting = "Hello ${name}"
出力:Hello Guillaume
コードで、タスク名を印刷する場合。その場合、二重引用符を使用する必要があります。
defaultTasks 'clean', 'run'
task clean << {
println 'Default Cleaning!'
}
task run << {
println "Default Running $run.name!"
// here Double Quotes are required to interpolate task-name
}
task other << {
println "I'm not a default task!"
}