Gradle单引号vs双引号



我是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。ktssettings.gradle.kts)是常规的Kotlin代码。
因此,字符串字面值总是用双引号括起来:

val myFirstString = "4 / 2 equals ${4 / 2}"
val mySecondString = """The property "hide" was not found"""

相关内容

  • 没有找到相关文章

最新更新