Gradle Single vs Double Quotes

时间:2013-03-02 05:20:26

标签: gradle dependency-management

我是新手,我目前正在尝试按照教程进行操作,而且很多次我看到单引号和双引号混合在一起。我只是想知道是否应该使用一组而不是另一组。其中一个例子是教程的第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中打印字符串时使用单引号或双引号。

4 个答案:

答案 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!"
}