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/