On Thursday, February 24, 2011 13:55:43 bearophile wrote: > Steven Schveighoffer: > > wait, you thought char[] was an array? You poor poor soul ;) > > > > I predict we shall get 1-2 questions/claims of incredulity like this a > > month until we get a real string type. > > There's a need for both unicode strings, and simpler strings of 7 bit ASCII > chars (both mutable and immutable. The immutable ones must not allow to > change their length. Their hashing value may be computed lazily even for > the immutable strings). A ubyte[] is not a good enough replacement for an > ASCII string. Even a puny language like Python3 has recognized this.
Honestly, I think that the need for actual ASCII strings is quite rare and that it _should_ not be encouraged. However, it would be trivial to declare wrappers for char and wchar (e.g. charRange and wcharRange) which actually use char or wchar as their element type if it's really needed. In most cases, however, using unicode strings is what should be happening, so the fact that char[] doesn't work as a range is a _good_ thing. The only real problem with it is the fact that foreach doesn't use dchar as its default iteration type when iterating over arrays of char or wchar. - Jonathan M Davis