On 11/12/21 10:03 AM, Ogi wrote:
>On Friday, 12 November 2021 at 10:55:21 UTC, Stefan Koch wrote:
>Good Morning Everyone,
I recently found myself wanting to introduce a bunch of member variables into the scope of the function I was currently working on.
Of course D has a nice way to do that; The with
statement.
so
struct S { int x; }
int fn()
{
S s;
with(s)
{
x = 12;
return x;
}
}
this code works but it forces another level of indentation which makes it a little ugly.
So I did a small patch to my local version of dmd.
And now this works:
struct S { int x; }
int fn()
{
S s;
with(s):
x = 12;
return x;
}
It is a really simple patch and I think it's worthwhile to have this in the main language.
I’m missing the point. Why using a struct to add some variables? At first I thought that you want to shadow already existing variables but this is prohibited in D and thank God for that.
No, you are wanting to use the members of s
many times, and don't want to have to repeat s.
all the time. This isn't a great example because of the brevity. But imagine a long expression instead of the single-letter variable.
with
already works as noted in the first case, the second case would just be a way to write the same thing but without braces (and indentation).
-Steve