Why does nobody seem to think that `null` is a serious problem in D?

NoMoreBugs NoMoreBugs at gmail.com
Wed Nov 21 01:20:25 UTC 2018


On Tuesday, 20 November 2018 at 19:11:46 UTC, Steven 
Schveighoffer wrote:
>
> But really, it's the act of using a pointer to read/write the 
> data it points at which causes the segfault. And in D, we 
> assume that this action is @safe because of the MMU protecting 
> the first page.
>

This is like me saying I won't bother locking up when I leave the 
house, cause if the alarm goes off the security company will come 
around and take care of things anyway.

But by then, it's too late.


>> D is proclaiming that dereferencing `null` must segfault but 
>> that is not implemented by any of the compilers. It would 
>> require inserting null checks upon every dereference. (This 
>> may not be as slow as you may think, but it would probably not 
>> make code run faster.)

Aristotle would have immediately solved this dilemma.

Null is a valid value for reference types.
Dereferencing null can lead to bad things happening.
Therefore, check for null before dereferencing a reference type.

Problem solved.





More information about the Digitalmars-d-learn mailing list