//GString supports Variable Interpolation; $var eller ${var}
def var = "HI"
//Slashy String will result in a GString so supports variable interpolation
def slashyString = /Test \/ "slashy" 'string!' $var/
//Single Quote String is an java.lang.String so doesn't support variable interpolation
def singleQuoteString = 'Test / "single" \'quote string\' $var'
//Double Quote String will result in a GString so supports variable interpolation
def doubleQuoteString = "Test / \"single\" 'double quote string' $var"
println slashyString.class
println singleQuoteString.class
println doubleQuoteString.class
//Multiline Strings
slashyString = /
Test
\/ "slashy"
'string!'
${var}
/
singleQuoteString = '''
Test
/ "single"
\'quote string\'
${var}
'''
doubleQuoteString = """
Test /
\"single\"
'double quote string'
${var}
"""
println slashyString
println singleQuoteString
println doubleQuoteString
//GString will execute embedded Closure
def user = new Expando(name: 'mrhaki', email: 'mail@email.com')
def s = "...."
//GStrings will execute embedded Closure
def directEval = "Current name value is ${user.name} and email is ${user.email}."
def lazyEval = /Current name value is ${ -> user?.name } and email is ${s=user.email }./
user.name = 'changed username'
user.email = 'changed email'
println directEval
println lazyEval
println s
torsdag 16 januari 2014
Groovy and Strings
Prenumerera på:
Kommentarer till inlägget (Atom)
Inga kommentarer:
Skicka en kommentar