torsdag 16 januari 2014

Groovy and Strings

       

//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

       
 

Inga kommentarer:

Skicka en kommentar