On Tue, 10 Feb 2009 19:41:25 +0300, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
Denis Koroskin wrote:
On Tue, 10 Feb 2009 17:40:36 +0300, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
Denis Koroskin wrote:
On Tue, 10 Feb 2009 17:11:06 +0300, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
Nick Sabalausky wrote:
"Daniel Keep" <daniel.keep.li...@gmail.com> wrote in message
news:gmpd71$8u...@digitalmars.com...
Alex Burton wrote:
I think it makes no sense to have nullable pointers in a high
level language like D.
Oh, and how do you intend to make linked lists? Or trees? Or any
non-trivial data structure?
Null Object Pattern:
--------------
class LinkedListNode(T)
{
LinkedListNode!(T) next;
private static LinkedListNode!(T) _end;
static LinkedListNode!(T) end() {
return _end;
}
static this() {
_end = new LinkedListNode!(T);
}
}
--------------
What is "next" for the _end node?
Andrei
Perhaps, 'this' (i.e. itself).
Then there's going to be quite a few infinite loops out there...
Andrei
No, you just need to have a private ctor:
I meant that code that fails to check for _end when iterating through a
list will never stop.
Andrei
No, error like that will be detected at compile time (comparison against
null is disallowed for non-nullable reference).