我是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
您可以在本文或web上的其他Groovy文章中了解更多关于Groovy字符串插值的信息。
是的,您可以使用其中一个。唯一的区别是双引号字符串可以是gstring, gstring可以包含求值表达式,如下面的Groovy文档示例所示:
foxtype = 'quick'
foxcolor = ['b', 'r', 'o', 'w', 'n']
println "The $foxtype ${foxcolor.join()} fox"
// => The quick brown fox
根据gradle文档:
在构建脚本清单中使用单引号
这是主要是为了确保指南之间的一致性,但单引号也是如此比双引号少一点噪音。请使用双引号想要在字符串中包含一个嵌入表达式。
单引号字符串是由单引号包围的一系列字符。例如:
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!"
}
Kotlin DSL文件(如build.gradle。kts或settings.gradle.kts)是常规的Kotlin代码。
因此,字符串字面值总是用双引号括起来:
val myFirstString = "4 / 2 equals ${4 / 2}"
val mySecondString = """The property "hide" was not found"""