我是新手,我目前正在尝试按照教程进行操作,而且很多次我看到单引号和双引号混合在一起。我只是想知道是否应该使用一组而不是另一组。其中一个例子是教程的第6.12节 - Default tasks:
defaultTasks 'clean', 'run'
task clean << {
println 'Default Cleaning!'
}
task run << {
println 'Default Running!'
}
task other << {
println "I'm not a default task!"
}
所以,我想知道我是否应该注意这些差异,或者它们是否可以互换,我可以在gradle中打印字符串时使用单引号或双引号。
答案 0 :(得分:64)
Gradle构建脚本是用Groovy编写的。 Groovy有双引号和单引号的字符串文字。主要区别在于双引号字符串文字支持字符串插值:
def x = 10
println "result is $x" // prints: result is 10
您可以在this或网络上的其他Groovy文章中了解有关Groovy字符串插值的更多信息。
答案 1 :(得分:11)
是的,你可以使用其中一个。唯一的区别是双引号字符串可以是GStrings,它可以包含评估表达式,如以下示例中的the Groovy documentation所示:
foxtype = 'quick'
foxcolor = ['b', 'r', 'o', 'w', 'n']
println "The $foxtype ${foxcolor.join()} fox"
// => The quick brown fox
答案 2 :(得分:2)
根据gradle docs:
构建脚本列表中纯字符串的常用单引号
这是 主要是为了确保各指南之间的一致性,但单引号也 噪音比双引号少。仅当您使用双引号 想要在字符串中包含嵌入式表达式。
答案 3 :(得分:0)
单引号字符串是由单引号包围的一系列字符。 像:
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!"
}