web-dev-qa-db-fra.com

Gradle Single vs Double Quotes

Je suis nouveau à Gradle et j'essaie actuellement de suivre les tutoriels et plusieurs fois j'ai vu des guillemets simples et doubles mêlés. Je voulais juste savoir s'il y avait une différence entre le moment où un jeu doit être utilisé et l'autre. Un exemple de ceci est la section 6.12 du tutoriel - Tâches par défaut :

defaultTasks 'clean', 'run'

task clean << {
    println 'Default Cleaning!'
}

task run << {
    println 'Default Running!'
}

task other << {
    println "I'm not a default task!"
}

Je voudrais donc simplement savoir si je devrais faire attention à ces différences ou si elles sont interchangeables et que je peux utiliser des guillemets simples ou doubles lors de l’impression de chaînes dans Gradle.

53
Dan W

Les scripts de construction Gradle sont écrits en Groovy. Groovy a à la fois des littéraux String cités à la fois double et simple. La principale différence est que les littéraux de chaîne entre guillemets prennent en charge l'interpolation de chaîne:

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

Vous pouvez en apprendre davantage sur l’interpolation Groovy String dans this ou d’autres articles Groovy sur le Web.

61

Oui, vous pouvez utiliser l'un ou l'autre. La seule différence est que les chaînes entre guillemets peuvent être GStrings, qui peuvent contenir des expressions évaluées comme dans l'exemple suivant tiré de la documentation Groovy :

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

Les chaînes entre guillemets sont une série de caractères entourés de guillemets simples . Comme: 

def str='a single quoted string'
println str

Ouput: 

a single quoted string

Considérant que les chaînes entre guillemets nous permettent l’interpolation Chaîne Nous avons ici une chaîne avec un espace réservé référençant une variable locale:

def name = 'Guillaume' // a plain string
def greeting = "Hello ${name}"

Sortie: Hello Guillaume

Dans votre code, si vous souhaitez imprimer le nom de la tâche. Donc, dans ce cas, vous devez utiliser les guillemets doubles:

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!"
}
0
Deepak Bhavale

Selon le grade docs :

Privilégiez les guillemets simples pour les chaînes simples dans les listes de script de construction 

C'est principalement pour assurer la cohérence entre les guides, mais les guillemets simples sont également un peu moins bruyant que les guillemets doubles. N'utilisez que des guillemets doubles si vous vouloir inclure une expression incorporée dans la chaîne.

0
Julian A.