On 11 Nov 2009, at 11:04, Michael Schnell wrote:

What about case sensitivity with "if str1=str2 then ..." ?

The "=" operator for strings has always performed a simply byte-wise comparison until now, and presumably keeps acting the same in Delphi 2009 with the new UnicodeStrings. Custom string comparisons require helper routines (such CompareText and friends), because there are a lot of different options that you can require (numeric vs lexical vs raw byte comparisons, case sensitive/insensitive, ignoring diacritics or not, treating decomposed and composed code points the same or not, ...). You cannot shoehorn all of that on a single operator.

Strings are a perfect tool to just store some values, disregarding any
encoding. Something like dynamic arrays but with the benefit of
reference counting

Dynamic arrays are reference counted.

and using standard objects like TStringList.

It would also be useful if you could store strings into a set (transparent hash set!), but that does not mean that every possible data structure for every possible data type should be built into the language. There is no inherent reason why you cannot easily create tstringlist-like functionality for dynamic arrays.

AFAIK, the recent Delphi provides a completely new object for that
purpose, which I do think is not necessary at all, and braking a lot of
existing code.

I have not heard about this. Not to mention that changing strings into a hypothetical rawdwordstring would also break existing code, so I don't see how that's better or worse in that respect.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to