Adding the ?. null verification
via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jun 18 12:04:33 PDT 2014
On Wednesday, 18 June 2014 at 17:56:46 UTC, Mattcoder wrote:
> On Wednesday, 18 June 2014 at 15:42:04 UTC, Etienne wrote:
>> it would be a little more practical to be able to write
>>
>> writeln(obj.member?.nested?.val);
>
> If one of these: member, nested or val == null, what will
> happen with writeln()? It will print null or it will be avoided?
The expression needs to have exactly one type, and because all of
the components can be non-null, it needs to be the type of the
last component, in this case `val`. This means that if the one of
the components is null, the entire expression needs to return a
value of this type, presumably the `.init` value.
The alternative is to raise an exception (or error), but that
would defeat the purpose (almost, as it would be slightly better
than segfaulting).
More information about the Digitalmars-d
mailing list