[fpc-devel] if-then-else expression
Sven Barth
pascaldragon at googlemail.com
Thu Aug 28 13:10:56 CEST 2025
Hairy Pixels via fpc-devel <fpc-devel at lists.freepascal.org> schrieb am Di.,
26. Aug. 2025, 09:53:
> On Aug 24, 2025 at 3:28:45 PM, Karoly Balogh via fpc-devel <
> fpc-devel at 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.
>
As said IfThen evaluates both sides no matter the result of the expression.
The if-expression will not. Thus is a very important difference.
Also there *will* be the if-then-expression, the question is only when the
merge request is finalized enough (I currently can't check, so I can't
comment on any progress there).
Regards,
Sven
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20250828/e710bf3a/attachment.htm>
More information about the fpc-devel
mailing list