Gradle Single vs Double Quotes

Я новичок в 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.

Ответ 1

Gradle скрипты сборки записываются в Groovy. Groovy имеет как двухцилиндровые, так и строковые литералы с одной кавычкой. Основное отличие состоит в том, что строковые литералы с двойными кавычками поддерживают String-интерполяцию:

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

Вы можете узнать больше о Groovy String-интерполяции в этом или других Groovy статьях в Интернете.

Ответ 2

Да, вы можете использовать тот или иной. Единственное отличие состоит в том, что строки с двойными кавычками могут быть GStrings, которые могут содержать оцененные выражения, как в следующем примере, взятые из документации Groovy:

foxtype = 'quick'
foxcolor = ['b', 'r', 'o', 'w', 'n']
println "The $foxtype ${foxcolor.join()} fox"
// => The quick brown fox

Ответ 3

Строки в одинарных кавычках представляют собой последовательность символов, заключенных в одинарные кавычки. лайк:

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

Ответ 4

Согласно документам Gradle:

Избавьтесь от одинарных кавычек для простых строк в списках сценариев сборки

Это главным образом для обеспечения согласованности между направляющими, но одинарные кавычки также немного менее шумные, чем двойные. Используйте двойные кавычки, только если вы хотите включить в строку встроенное выражение.