[fpc-pascal] New feature: IfThen() intrinsic

Serguei TARASSOV serge at arbinada.com
Tue Feb 2 10:41:39 CET 2016


On 02/02/2016 10:29, fpc-pascal-request at lists.freepascal.org wrote:
> 2016-02-01 10:59 GMT+01:00 Michael Schnell<mschnell at lumino.de>:
> Same here. I see no reason to differ from it. Introducing new
> incompatibility is bad idea. For me is good to have booth (Oxygene
> compatible):
>
> x := iif (a < 3, 1, 2);
> V := If a < 3 then 1 else 2;
>
> sometimes is better to use first option and sometimes is better to use
> second option. Both Oxygen compatible and very "pascalish".
No, the second is always better because safer.

x := iif (Obj = nil, 0, Obj.Value);
This will raise access violation as a normal function or you depend on 
compiler implementation for this special case. And you should remember 
an additional special case of function.

x := iif Obj = nil then 0 else Obj.Value;
Doesn't raise AV because it's a statement, not function.

Regards,
Serguei



More information about the fpc-pascal mailing list