On 8/25/25 5:27 PM, Hairy Pixels via fpc-devel wrote:
On Aug 24, 2025 at 3:28:45 PM, Karoly Balogh via fpc-devel
<fpc-devel@lists.freepascal.org> wrote:
The new syntax has strong Python vibes to me. This is where I saw/used
this the most. Which is not necessarily a bad thing. My code is usually
very oldschool and I tend to avoid most of the "modern" bells & whistles,
as I have a firm belief they hinder long-term maintainability, or they're
simply eye-sore (mainly that Delphi inline variable declaration comes to
mind) but this is one of the "newschool" syntax things which I'd gladly
use myself.
I think they added a IfThen generic which can be implicitly
specialized now so you can do things like:
s := IfThen(p <> nil, 'valid', 'nil’);
vs
s := If p <> nil then 'valid' else 'nil';
It’s almost easier to read. I’m not sure I’d like the have
if-statements confused with expressions when scanning code either. At
least the C version is more terse but that one can be hard to identify
also. All in all I think IfThen is actually pretty good.
But they're not 100% compatible, are they? IfThen evaluates both the
true and the false parameter, while the 'if' statement doesn't. For example:
s := IfThen(b <> 0, a div b, 999)
Will raise a division by zero exception, if b is 0, while
s := if b <> 0 then a div b else 999
won't.
Nikolay
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel