On Wednesday, 18 June 2014 at 15:42:04 UTC, Etienne wrote:
I find myself often repeating this boilerplate:

if (obj.member !is null)
{
        if (obj.member.nested !is null)
        {
                if (obj.member.nested.val !is null)
                {
                        writeln(obj.member.nested.val);
                }
        }
}

I have to admit it's a little frustrating when you see swift's ?. syntax notation, it would be a little more practical to be able to write

writeln(obj.member?.nested?.val);


Based on http://appventure.me/2014/06/13/swift-optionals-made-simple/


Any thoughts?

Would be great! I think though, one could simplify it, you don't need multiple ?'s(one would do)

if (?obj.member.nested.val == null)
{
...
}

?object returns null if the object is null, even if it is dereferenced.

possibly a better syntax would be

if (??obj.member.nested.val == null)

If used as a rval one could have

auto x = ??obj.member.nested.val;

x is null if obj, obj.member, or obj.member.nested is null. Else obj.member.nested.val.

I'm just curious who is going to add the the code to D?

If you don't like ?? (confusing it with the null-coalescing operator) then what about ?*, *?, ?&, &?, ???, etc...

Reply via email to