References in D

Henning Pohl henning at still-hidden.de
Wed Oct 3 03:41:44 PDT 2012


On Wednesday, 3 October 2012 at 08:11:32 UTC, Franciszek Czekała 
wrote:
> Agreed. Nullable types are a feature not a bug. There is no 
> need to change it. Bugs occur when you do not know the language 
> rules and make assumptions instead. This can happen whith any 
> language and any rules. As to an example use of nullable 
> references: consider a board game (for example chess). The 
> boards has cells which can be empty or occupied. Model this 
> with an array of class objects  representing pieces. null 
> reference means a cell is not occupied. If you want to remove a 
> piece from the board assign null to it and GC will take care of 
> the rest. Now, doing this with full objects representing empty 
> cells would require needless work to define such "null" objects 
> and would be wasteful of memory (typically boards are sparsely 
> populated). Now imagine a really big board and every cell 
> holding references to useless objects simulating null 
> references. It would not make sense. Saying that null 
> references are evil is just propaganda. Let's keep D a sane 
> language.

There is a related question at stackoverflow: 
http://stackoverflow.com/questions/693325/non-nullable-reference-types

As you can see the "nullable references are great" guy has been 
voted down.

I've written like 5k lines of code in D and never felt the need 
of using null. C++'s std::shared_ptr has the same issue, but at 
least it is called pointer.


More information about the Digitalmars-d mailing list