Since Groovy 1.7.6 we can use a Map as a case in a switch statement. Groovy adds the isCase() method where the switch operand is used to find map elements. Groovy tries to find a key with the given switch operand in the Map and if it is found true is returned.
def testSwitch(val) {
def result
switch (val) {
// New in Groovy 1.7.6: Map support.
case [groovy: 'Rocks!', version: '1.7.6']:
result = "Map contains key '$val'"
break
case 60..90:
result = "Range contains $val"
break
case [21, 'test', 9.12]:
result = "List contains '$val'"
break
default:
result = 'Default'
break
}
result
}
assert testSwitch('groovy') == "Map contains key 'groovy'"
assert testSwitch(70) == 'Range contains 70'
assert testSwitch('test') == "List contains 'test'"
assert testSwitch('default') == 'Default'