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