Safe Navigation Operator “?.” for D2 ?

John Colvin john.loughran.colvin at gmail.com
Fri Feb 28 04:28:21 PST 2014


On Friday, 28 February 2014 at 11:11:28 UTC, Dicebot wrote:
> On Friday, 28 February 2014 at 09:24:23 UTC, John Colvin wrote:
>>> Chaining . operation is a code smell to begin with
>>
>> It is? Why?
>
> If a system is well-designed, then "null" state either means 
> something (and needs to be explicitly handled) or is not 
> possible.
>
> ?. provides simple and easy way to write a sloppy code that 
> does not tell the reader if resulting code flow for null case 
> was intentional. Also it is very easy to get accustomed to use 
> ?. everywhere instead of . and get broken logic instead of 
> NullPointerException for cases when pointer is wrongly assumed 
> to never be null.

Do you mean:

Chaining operations that can return null (or some other 
known-to-be-invalid state) is a code-smell.

That's quite different to saying:

Chaining operations using . is a code-smell.

which is what deadalnix said.


Either way, a do-this-if-you-can pattern is quite reasonable IMO. 
However, I do question whether it's common enough to justify 
syntax sugar.


More information about the Digitalmars-d mailing list