Spec#, nullables and more

Gary Whatmore no at spam.sp
Sat Nov 6 13:37:09 PDT 2010


Walter Bright Wrote:

> Adam Burton wrote:
> > I wouldn't consider that as the same thing. null represents the lack of a 
> > value where as 25 is the wrong value. Based on that argument the application 
> > should fail immediately on accessing the item with 25 (not many moons later) 
> > in the same manner it does nulls, but it doesn't because 25 is the wrong 
> > value where as null is a lack of value.
> > 
> > As with the array allocation example earlier you initialise the array to 
> > nulls to represent the lack of value till your application eventually gets 
> > values to assign to the array (which may still be wrong values). As shown by 
> > my alternative example non-nulls allow you to define that a 
> > variable/parameter wants a value and does not work when it receives nothing. 
> > However in the case of the array because all the information is not there at 
> > the point of creation it is valid for the array items to represent nothing 
> > till you have something to put in them.
> 
> 
> I am having a real hard time explaining this. It is conceptually *the same 
> thing*, which is having an enforced subset of the values of a type.

I'm seeing it. The other arguments for non-null types also fall short because non-nulls don't solve basic problems like arrays, basic collections in the library (custom fill policy). Has any mainstream language adopted non-null types? No they haven't because the idea is broken.


More information about the Digitalmars-d mailing list