GString
Las GString (Groovy String), aunque es una cadena, la misma agrega funcionalidad a la vieja cadena de Java, en un GString podemos hacer evaluaciones de variables o propiedades de clases, disponibles en el "scope" de la cadena, las operaciones se realizan de una manera muy similar a como se harían en EL (expression language) utilizado en librerías tales como JSTL.
void theGString () {
def name = "Jon"
def now = new Date ()
println("\nGString")
(1..3).each { print "*** " }
println("")
println "Hello word!".class
println "Hello ${name}".class
println """
Hi my names is ${name},
now is "${now}"
"""
} // theGString.
Salida
class java.lang.String
class org.codehaus.groovy.runtime.GStringImpl
Hi my names is Jon,
now is "Mon Feb 02 17:11:19 CST 2009"
Como se puede notar, al utilizar las expresiones ${} podemos utilizar variables dentro del scope e inclusive inspeccionarlas, de esta manera se tenemos una lista de usuario, los cuales tienen nombre y apellidos, podríamos hacer lo siguiente:
println "Hello ${users[0].name.lastName}"
La anterior sentencia, obtiene el primer elemento de una coleccion, el atributo name de ese objeto y el apellido del objeto name.
Las GString (Groovy String), aunque es una cadena, la misma agrega funcionalidad a la vieja cadena de Java, en un GString podemos hacer evaluaciones de variables o propiedades de clases, disponibles en el "scope" de la cadena, las operaciones se realizan de una manera muy similar a como se harían en EL (expression language) utilizado en librerías tales como JSTL.
void theGString () {
def name = "Jon"
def now = new Date ()
println("\nGString")
(1..3).each { print "*** " }
println("")
println "Hello word!".class
println "Hello ${name}".class
println """
Hi my names is ${name},
now is "${now}"
"""
} // theGString.
Salida
class java.lang.String
class org.codehaus.groovy.runtime.GStringImpl
Hi my names is Jon,
now is "Mon Feb 02 17:11:19 CST 2009"
Como se puede notar, al utilizar las expresiones ${} podemos utilizar variables dentro del scope e inclusive inspeccionarlas, de esta manera se tenemos una lista de usuario, los cuales tienen nombre y apellidos, podríamos hacer lo siguiente:
println "Hello ${users[0].name.lastName}"
La anterior sentencia, obtiene el primer elemento de una coleccion, el atributo name de ese objeto y el apellido del objeto name.
Comentarios