Groovy: Picking a value from a number of options
Join the DZone community and get the full member experience.
Join For FreeLet’s say you need to define a value based on a number of conditions. If first condition holds true, then the value is X, if second condition holds true then the value is Y and so on. I used to go with a multi-level ternary operator to accomplish that:
def a = 2
def x = ( a == 1 ) ? 'aa' :
( a == 2 ) ? 'bb' :
( a == 3 ) ? 'cc' :
'dd'
assert x == 'bb'
Today @tim_yates has suggested a more debuggable way:
def a = 2
def x = a.with { switch( it ) {
case 1 : return 'aa'
case 2 : return 'bb'
case 3 : return 'cc'
default : return 'dd' }
}
assert x == 'bb'
Thanks, Tim! Will start using it now. This is very close to Scala version, which is even shorter:
val a = 2
val x = a match {
case 1 => "aa"
case 2 => "bb"
case 3 => "cc"
case _ => "dd"
}
assert ( x == "bb" )
Groovy (programming language)
Scala (programming language)
Operator (extension)
Opinions expressed by DZone contributors are their own.
Comments