Qual è la differenza di stringhe tra virgolette singole o doppie in groovy?

def a = "a string" def b = 'another' 

C’è qualche differenza? O proprio come javascript per inserire ' e " più facilmente nelle stringhe?

Le virgolette singole sono una stringa java standard

Le virgolette sono una stringa temporanea, che restituisce un GString se è un modello, oppure una stringa Java standard. Per esempio:

 println 'hi'.class.name // prints java.lang.String println "hi".class.name // prints java.lang.String def a = 'Freewind' println "hi $a" // prints "hi Freewind" println "hi $a".class.name // prints org.codehaus.groovy.runtime.GStringImpl 

Se provi a utilizzare i template con stringhe con un solo quoting, non fa nulla, quindi:

 println 'hi $a' // prints "hi $a" 

Inoltre, vale la pena leggere il link fornito da julkiewicz nella loro risposta (specialmente la parte su GStrings che non è Strings a circa 2/3 della via.

La mia comprensione è che la stringa con virgolette può contenere riferimenti incorporati a variabili e altre espressioni. Ad esempio: "Hello $name" , "Hello ${some-expression-here}" . In questo caso verrà GString un GString anziché una normale String . D’altra parte le stringhe con quotatura singola non supportano questa syntax e generano sempre una String semplice. Maggiori informazioni sull’argomento qui:

http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings