On Wednesday, 18 October 2017 at 08:56:21 UTC, Satoshi wrote:
conditional dereferencing and stuff about that (same as in C#)
foo?.bar;
foo?[bar];
return foo ?? null;
Tbh. these are some I really wish were in D, because it becomes
tedious having to write something like this all the time:
return foo ? foo : null;
where
return foo ?? null; would be so much easier.
It especially becomes painful when you have something with
multiple member accesses.
Like:
return foo ? foo.bar ? foo.bar.baz ? foo.bar.baz.something : null;
Which could just be:
return foo?.bar?.baz?.something;
async/await (vibe.d is nice but useless in comparison to C# or
js async/await idiom)
I want to create function returning Promise/Task and await
where I want to.
e.g.
auto result = device.start(foo, bar); // This is RPC to remote
server returning Task!Bar
// do some important stuff
return await result; // wait for RPC finish, then return it's
result
I don't think this is much necessary, because the fiber
implementations already are able to let you write code close to
this.
The only difference is you have to import the modules, but it's
such a small thing I don't think you really need this.
implement this thing from C# (just because it's cool)
new Foo() {
property1 = 42,
property2 = "bar"
};
Thanks for your time.
- Satoshi
I really wish this was implemented for classes too! Currently it
exist for structs and it completely baffles me why it has never
been implemented for structs.