I have only used  += once;  I normally would not use I:=I+1; or I+=1;   I would 
use Inc(I);

FPC does not compile I+=1; by default,  you have to go into compiler options 
and turn on C-Like operators.. I'm sure Lazarus turns this on by default, but 
it's not the normal default for just FPC.  I know it is not the default because 
I just installed FPC and if would not compile the exactly 1 instance I used += 
until I went in and turn on C-Like operators.

As far as typing code goes,  I find all the begin's and end's to take more 
effort than anything else...  but I can type a block of
   Begin
   End
Else
   Begin
   End; 
Super fast now anyway... and I find that I defiantly PREFER to make the effort 
because the code is much more readable than things like python that don't use 
anything but indentation or C that uses the {} braces..   I find it so much 
easier to follow after the fact having begin and end than trying to follow a 
huge chain of braces which blend in way too easily with parenthesis ().  Also 
most coding has more to do with cutting and pasting than actually typing things 
out anyway.  Readability after the fact is simply WAY more important than how 
many keyboard keys you need to hit to get the code on the screen.

James

-----Original Message-----
From: fpc-pascal <fpc-pascal-boun...@lists.freepascal.org> On Behalf Of Rainer 
Stratmann
Sent: Wednesday, August 14, 2019 12:33 PM
To: FPC-Pascal users discussions <fpc-pascal@lists.freepascal.org>
Subject: Re: [fpc-pascal] += property bug?

On Mittwoch, 14. August 2019 18:24:40 CEST Michael Van Canneyt wrote:
> On Wed, 14 Aug 2019, Ryan Joseph wrote:
> >> On Aug 14, 2019, at 12:04 PM, Rainer Stratmann <rainerstratmann@t-
online.de> wrote:
> >>> It’s so
> >>> intuitive that basically all languages have adopted the syntax.
> >> 
> >> That is not true
> > 
> > All languages I use have them: Pascal, C, PHP, C#, Swift, Python, 
> > JavaScript. These are some of the most popular languages in the 
> > world right now. You’re fighting a losing battle sir.
> I don't see what the issue is ?
> 
> You do have +=  and the like. They exist, since about as long as I can 
> remember.

Didn't you know that Ryan?

> You just cannot use it on properties.
> 
> Properties have some other restrictions as well:
> 
> * You also cannot Use Inc() on integer properties,
> * or use Include()/Exclude() on set properties.
> * You also cannot do SomeRecordProp.X:=Y;
> * or pass them to functions that require var arguments.
> 
> And I'm probably forgetting some other limitations.
> 
> The += is just another one in the list of limitations of properties.
> 
> Basically any operation that requires an address is not allowed.
> That += is using an address is an implementation detail of the compiler.
> Same as Inc() or In/Exclude(). I don't know the exact reason for this 
> limitation, but it's bound to be a good one, otherwise it would have 
> been lifted a long time ago...
> 
> And if someone doesn't like these limitations of properties, (s)he can 
> use fields. No-one abolished those, after all.
> 
> Michael.


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org 
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to