72

私は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で文字列を印刷するときに一重引用符または二重引用符を使用できるのかを知りたいだけです。

4

5 に答える 5

80

GradleビルドスクリプトはGroovyで記述されています。Groovyには、二重引用符で囲まれた文字列リテラルと単一引用符で囲まれた文字列リテラルの両方があります。主な違いは、二重引用符で囲まれた文字列リテラルが文字列補間をサポートしていることです。

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

Groovy文字列補間の詳細については、このWeb上のGroovyの記事または他のGroovyの記事を参照してください。

于 2013-03-02T07:53:51.413 に答える
14

はい、どちらか一方を使用できます。唯一の違いは、二重引用符で囲まれた文字列がGStringsである可能性があることです。これには、Groovyのドキュメントから抜粋した次の例のように評価された式を含めることができます。

foxtype = 'quick'
foxcolor = ['b', 'r', 'o', 'w', 'n']
println "The $foxtype ${foxcolor.join()} fox"
// => The quick brown fox
于 2013-03-02T07:52:24.923 に答える
7

gradleのドキュメントによると:

ビルドスクリプトリストでプレーン文字列の単一引用符を優先する

これは主にガイド間の一貫性を確保するためですが、一重引用符は二重引用符よりも少しノイズが少なくなります。文字列に埋め込み式を含める場合にのみ、二重引用符を使用してください。

于 2019-02-01T02:06:49.373 に答える
2

一重引用符で囲まれた文字列は、一重引用符で囲まれた一連の文字です。お気に入り :

def str='a single quoted string'
println str

Ouput:

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!"
}
于 2019-01-10T06:20:11.817 に答える
0

Kotlin DSLファイル(build.gradle.ktssettings.gradle.ktsなど)は通常のKotlinコードです。
したがって、文字列リテラルは常に二重引用符で囲まれます。

val myFirstString = "4 / 2 equals ${4 / 2}"
val mySecondString = """The property "hide" was not found"""
于 2022-02-18T14:27:05.840 に答える