[:] as empty associative array literal, plus warning for null

Steven Schveighoffer schveiguy at yahoo.com
Thu Jul 4 04:50:54 PDT 2013


On Thu, 04 Jul 2013 05:25:30 -0400, Regan Heath <regan at netmail.co.nz>  
wrote:

> On Wed, 03 Jul 2013 19:10:40 +0100, bearophile  
> <bearophileHUGS at lycos.com> wrote:
>> Telling apart the literal for an empty array from the literal of a  
>> empty but not null array is a bad idea that muds the language. And  
>> thankfully this currently fails:
>>
>> void main() {
>>      int[] emptyArray = [];
>>      assert(emptyArray !is null);
>> }
>
> As this comes up often you're probably aware that there are people (like  
> myself) who find the distinction between a null (non-existant) array and  
> an empty array useful.

Nobody questions that.  The biggest problem is making if(arr) mean  
if(arr.ptr) instead of if(arr.length)

What [] returns should not be an allocation.  And returning null is a  
reasonable implementation of that.

-Steve


More information about the Digitalmars-d mailing list