Empty VS null array?

Jonathan M Davis jmdavisProg at gmx.com
Mon Oct 21 04:54:56 PDT 2013


On Monday, October 21, 2013 11:58:07 Regan Heath wrote:
> If what you say is true then slices would and could never be null... If
> that were the case I would stop complaining and simply "box" them with
> Nullable when I wanted a reference type.  But, D's strings/slices are some
> kind of mutant half reference half value type, and that's the underlying
> problem here.

Yeah, dynamic arrays in D are just plain weird. They're halfway between 
reference types and value types, and it definitely causes confusion, and it 
totally screws with null (which definitely sucks). But they mostly work really 
well the way that they are, and in general, the way that slices work works 
really well. So, I don't know if what we have is ultimately the right design 
or not. I definitely don't like how null works for arrays though.

Given how they work, we probably would have been better off if they couldn't be 
null. The ptr obviously could be null, but the array itself arguably shouldn't 
be able to be null. If we did that, then it would be clear that null wouldn't 
work with arrays, and no one would try. It would still kind of suck, since you 
wouldn't have null, but then at least it would be clear that null wouldn't 
work with arrays instead of having a situation where it kind of does and kind 
of doesn't.

- Jonathan M Davis


More information about the Digitalmars-d mailing list