On Fri, Oct 20, 2017 at 06:20:52PM +0000, Random D user via Digitalmars-d wrote:
> On Friday, 20 October 2017 at 02:20:31 UTC, Adam D. Ruppe wrote:
> > On Friday, 20 October 2017 at 00:26:19 UTC, bauss wrote:
> > > return foo ?? null; would be so much easier.
> > return getOr(foo, null);
> 
> I guess with UFCS you could get:
> return foo.PP(null); // vs.
> return foo ?? null;
> 
> :D

You could have this today via a nicely-named UFCS function:

        T orElse(T t, lazy T defaultVal) { return t is null ? defaultVal : t; }

        class C {}
        C defaultC;
        C makeC() { ... }

        auto c = makeC().orElse(defaultC);

You can even UFCS-chain it:

        auto c = makeC().orElse(makeCAnotherWay())
                        .orElse(makeCYetAnotherWay())
                        .orElse(defaultC);


T

-- 
Stop staring at me like that! It's offens... no, you'll hurt your eyes!

Reply via email to