[ZZ]Groovy Goodness: Multiple Assignments

Since Groovy 1.6 we can define and assign values to several variables at once. This is especially useful when a method returns multiple values and we want to assign them to separate variables.

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> //  Assign and declare variables.
def (username, email)  =  [ ' mrhaki ' ' [email protected] ' ]
assert   ' mrhaki '   ==  username
assert   ' [email protected] '   ==  email

//  We can assign later than the definition of the variables.
int  housenr
String streetname
(streetname, housenr) 
=  [ ' Old Street ' 42 ]
assert   42   ==  housenr
assert   ' Old Street '   ==  streetname

//  Return value of method can be assigned to multiple variables.
def iAmHere() {
    [
29.20090 12.90391 ]
}
def (coordX, coordY) 
=  iAmHere()
assert  coordX  ==   29.20090
assert  coordY  ==   12.90391

//  More values than variables: extra values are ignored.
def (a, b, c)  =  [ ' a ' ' b ' ' c ' ' d ' ]
assert   ' a '   ==  a
assert   ' b '   ==  b
assert   ' c '   ==  c

//  Less values than variables: variable is not set.
def (x, y, z)  =  [ 100 200 ]
assert   100   ==  x
assert   200   ==  y
assert   ! z

你可能感兴趣的:(groovy)