A switch/case too far...
Unknown W. Brackets
unknown at simplemachines.org
Tue May 20 21:59:08 PDT 2008
The simple solution to that would be:
case is thisObj:
case is thatObj:
Makes sense and confuses no one, imho...
-[Unknown]
Koroskin Denis wrote:
> On Tue, 20 May 2008 15:06:38 +0400, Mike James <deepc at fishing.net> wrote:
>
>> I was looking thru some DWT examples and there is plenty of code like
>> this...
>>
>> if (myObj is thisObj)
>> // do something
>> else if (myObj is thatObj)
>> // do something else
>> else ...
>>
>> It occured to me how much neater it would be if the there was a
>> switch/case construct that could deal with it..
>>
>> switch (myObj) {
>> case thisObj:
>> // do something
>> break;
>> case thatObj:
>> // do something else
>> break;
>> default:
>> // do nothing
>> }
>>
>> I'm not sure how much compiler 'magic' would be required :-)
>
> There is a pitfall:
> should the compiler check for logical equality (opEqual) or instance
> equality (is)?
> "myObj is thisObj" is definately not the same as "myObj == thisObj", but
> how do you choose?
>
> And what about possible side effects? a.opEquals(b) can give different
> result each time being called, and therefor cannot be used in a switch
> statement unless it's marked as pure, which is to be implemented, I hope :)
More information about the Digitalmars-d
mailing list