Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Groovy: Picking a value from a number of options

DZone's Guide to

Groovy: Picking a value from a number of options

· Java Zone ·
Free Resource

How do you break a Monolith into Microservices at Scale? This ebook shows strategies and techniques for building scalable and resilient microservices.

Let’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" )

 

From http://evgeny-goldin.com/blog/picking-value/

How do you break a Monolith into Microservices at Scale? This ebook shows strategies and techniques for building scalable and resilient microservices.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}