On Tue, 05 Apr 2011 18:46:06 +0100, Steven Schveighoffer <schvei...@yahoo.com> wrote:
On Tue, 05 Apr 2011 13:24:49 -0400, Regan Heath <re...@netmail.co.nz> wrote:

On Fri, 01 Apr 2011 18:23:28 +0100, Steven Schveighoffer <schvei...@yahoo.com> wrote:

assert("" !is null); // works on D.  Try it.

Yes, but that's because this is a string literal. It's not useful where you're getting your input from somewhere else.. like in the other 2 use cases I mentioned.

But that isn't the same as []. Basically, if you have an existing array, and you want to create a non-null empty array out of it, a slice of [0..0] always works.

I know you mention it, but I want to draw attention to the original problem, that [] returns a null array. Other cases where you are not using [] or "" are a separate issue.

All the cases you have brought up involve strings, for which there is a non-null array returned for "". I still have not yet seen a compelling use case for making [] return non-null.

Ahh.. I see, I really should have renamed the thread title. I'm not, and never was, arguing for [] (specifically) returning non-null. Sorry.


Quoting from your message previously (with added comment):


        case 4:
                return cast(char[])"".dup;
        case 5:
                return cast(char[])""[0..0]; // note lack of .dup
        }

Drat, not sure what happened there. My source had the 'dup' when I went back to it. Sorry.

--
Using Opera's revolutionary email client: http://www.opera.com/mail/

Reply via email to