def a = "a string"
def b = 'another'
¿Hay alguna diferencia? ¿O simplemente como javascript para ingresar 'y "más fácilmente en cadenas?
Las comillas simples son una cadena java estándar
Las comillas dobles son una cadena que puede adaptarse a la plantilla, que devolverá una GString si tiene una plantilla o una cadena Java estándar. Por ejemplo:
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
Si intenta crear plantillas con cadenas entre comillas simples, no hace nada, así que:
println 'hi $a' // prints "hi $a"
Además, vale la pena leer el enlace proporcionado por julkiewicz en su respuesta (especialmente la parte sobre GStrings que no son cadenas de aproximadamente 2/3 del camino hacia abajo.
Tengo entendido que la cadena entre comillas dobles puede contener referencias incrustadas a variables y otras expresiones. Por ejemplo:
"Hello $name","Hello ${some-expression-here}". En este casoGString, se creará una instancia de un archivoString. Por otro lado, las cadenas entre comillas simples no admiten esta sintaxis y siempre dan como resultado un archivoString. Más sobre el tema aquí:http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings
fuente