If Statement with Declaration
Jerry via Digitalmars-d
digitalmars-d at puremagic.com
Fri Nov 4 08:34:00 PDT 2016
On Friday, 4 November 2016 at 14:16:44 UTC, Matthias Bentrup
wrote:
> On Thursday, 3 November 2016 at 22:29:34 UTC, Jerry wrote:
>> if(int i = someFunc(); i >= 0)
>> {
>> // use i
>> }
>> Thoughts on this sort of feature?
>
> I would prefer the syntax
>
> if( (int i = someFunc()) >= 0 )
> {
> // use i
> }
>
> as this matches the already existing assignment expression
> syntax if you pull the declaration out of the if expression.
Well you can argue the "if( init ; condition )" syntax matches
"for( init ; condition ; update)", minus the "update" section.
It's cleaner as well as you don't need an extra set of
parenthesizes. As well that sort of syntax would allow multiple
declaration. Which I'm not sure that's desired, it becomes
increasingly messy.
if((int i = someFunc()) >= 0 && (int j = otherFunc()) >= 0)
{
}
You also can't use the declaration as input for someFunc():
if(int i; someFunc(&i) >= 0)
{
}
More information about the Digitalmars-d
mailing list