If Statement with Declaration

Iakh via Digitalmars-d digitalmars-d at puremagic.com
Thu Jul 20 07:01:51 PDT 2017


On Wednesday, 19 July 2017 at 15:31:08 UTC, ag0aep6g wrote:
> On 07/19/2017 03:30 PM, sontung wrote:
>> So I was thinking of some sort of syntax like this:
>> 
>>      if(int i = someFunc(); i >= 0)
>>      {
>>          // use i
>>      }
>> Thoughts on this sort of feature?
>
> I'd prefer a new variant of `with`:
>
> ----
> with (int i = someFunc()) if (i >= 0)
> {
>     // use i
> }
> ----
>
> It's slightly more verbose, but the meaning is clearer 
> (arguable). It extends automatically to other control 
> structures like `switch`.
>
> I wouldn't have this new `with (declaration)` have the magic 
> lookup rules of the existing `with (expression)`. It would be a 
> simpler tool that I'd probably use more than the existing 
> `with`.

I like "with" variant. Very mach like haskells "where". I believe 
it
would be cool with expressions. Even can emulate named function
arguments

with (const skip_comments = false, const skip_empty_line = true)
auto diff_result = diff(textA, textB, skip_comments, 
skip_empty_line);


More information about the Digitalmars-d mailing list