groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guillaume Laforge <glafo...@gmail.com>
Subject Re: Curious that Groovy case can match values that are not equal to the candidate
Date Sat, 08 Aug 2015 16:09:44 GMT
You can use closures for arbitrary conditions (the return value is
evaluated via Groovy truth), or regexes so it checks the toString of the
value, etc.

Pretty powerful!
Le 8 août 2015 17:09, "Owen Rubel" <orubel@gmail.com> a écrit :

> Fascinating. Had no idea. Learn something new every day :)
>
> Owen Rubel
> 415-971-0976
> orubel@gmail.com
>
> On Fri, Aug 7, 2015 at 10:21 PM, Guillaume Laforge <glaforge@gmail.com>
> wrote:
>
>> Hi David,
>>
>> Groovy 's switch is a bit special and his beyond Java' s.
>> Please have a look at the documentation about it.
>> When a list is passed, it checks if the element is contained within.
>>
>> Guillaume
>> Le 7 août 2015 23:07, "KARR, DAVID" <dk068x@att.com> a écrit :
>>
>>> Reading REGINA, I find this detail of Groovy semantics very curious:
>>> ----------------------
>>> def myList = ['a', 'b', 'c']
>>> switch ('c') {
>>> case myList: assert true;break;
>>> default: assert false;break;
>>> }
>>> --------------
>>>
>>> In all the languages I'm aware of with some sort of "switch/case"
>>> construct, you can always assume that if the "case" matches, then the
>>> "case" value "is equal to" the switch candidate.  This is the first time
>>> I've seen this not be the case.
>>>
>>> I certainly understand what Groovy is doing here, and I appreciate the
>>> power of it, it's just a bit surprising.
>>>
>>
>

Mime
View raw message