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:
Избавьтесь от одинарных кавычек для простых строк в списках сценариев сборки
Это главным образом для обеспечения согласованности между направляющими, но одинарные кавычки также немного менее шумные, чем двойные. Используйте двойные кавычки, только если вы хотите включить в строку встроенное выражение.