[Lazarus] Delphi post-XE3 roadmap

Hans-Peter Diettrich DrDiettrich1 at aol.com
Wed Aug 29 22:46:41 CEST 2012


Graeme Geldenhuys schrieb:
> On 29/08/12 17:24, Hans-Peter Diettrich wrote:
>>
>> How do you intend to implement string operators?
> 
> I haven't thought or got to that part yet. I'll start with .Append(), 
> .Equals(), .Replace(), .SubString(), .Split() etc to cover all bases.
> 
> I'm still deciding if the TString class must be immutable or not. With 
> my strong Design Patterns background, I'm strongly leaning towards that 
> though. So .Append() and .Replace() for example will return new 
> instances of the class.

This is just what can make such classes dead slow in real life use.

> The classic unit test Money example explains this "immutable" reasoning 
> well. Consider the following...
> 
> public void testMultiplication() {
>    Dollar five = new Dollar(5);
>    five.times(2);
>    assertEquals(10, five.amount);  // Confusing!

Now replace "five" by "MyAccount", and feel comfortable with the 
continued increase :-)

In a good C++ design one would implement both "+" and "+=" operators, so 
that a compiler has a chance to optimize expression evaluation.

DoDi





More information about the Lazarus mailing list