2012-09-25 38 views

Respuesta

32

También podemos establecer el segundo argumento a un valor por defecto (como nulo):

def cl = { a, b=null -> 
    if(b != null) { 
    print "Passed $b then " 
    } 
    println "Called with $a" 
} 

cl('Tim')   // prints 'Called with Tim' 
cl('Tim', 'Yates') // prints 'Passed Yates then Called with Tim 

Otra opción sería hacer b una lista vararg así:

def cl = { a, ...b -> 
    if(b) { 
    print "Passed $b then " 
    } 
    println "Called with $a" 
} 

cl('Tim')     // prints 'Called with Tim' 
cl('Tim', 'Yates')   // prints 'Passed [Yates] then Called with Tim 
cl('Tim', 'Yates', 'Groovy') // prints 'Passed [Yates, Groovy] then Called with Tim 
+0

que era fácil;) thanx – Moonlit

+0

@ user1291235 no hay problema :-) Se agregó otra posible solución –

+0

Y si no quiere cambiar el cuerpo del cierre, puede ponerle nombre al primer argumento 'it' :-) – Ayman

1

espero que esto ayuda

​def clr = {...a -> 
    print "Passed $a then " 
    enter code here 

} 

​clr('Sagar') 
clr('Sagar','Rahul') 
Cuestiones relacionadas