On Friday, 20 October 2017 at 00:26:19 UTC, bauss wrote:
return foo ? foo : null;
where
return foo ?? null; would be so much easier.
return getOr(foo, null);
That's really easy to do generically with a function. I wouldn't
object to the ?? syntax, but if it really is something you write
all over the place, you could just write the function.
return foo ? foo.bar ? foo.bar.baz ? foo.bar.baz.something :
null;
Which could just be:
return foo?.bar?.baz?.something;
In dom.d, since I use this kind of thing somewhat frequently, I
wrote a function called `optionSelector` which returns a wrapper
type that is never null on the outside, but propagates null
through the members. So you can do
foo.optionSelector("x").whatever.you.want.all.the.way.down
and it handles null automatically.
You can do that semi-generically too with a function if it is
something you use really frequently.